using System.Threading.Tasks; using Microsoft.Extensions.Configuration; using Sozsoft.Mcp.Services; using Volo.Abp.Data; using Volo.Abp.DependencyInjection; namespace Sozsoft.Mcp.Data; /// /// Bilinen MCP istemcilerini (, /// ) seed eder. Geri donus adresleri /// OpenIddict:Applications:{ClientId}:RedirectUris ayarindadir; yeni bir saglayici eklemek /// bu listeye callback eklemektir. Ayari olmayan istemci olusturulmaz. /// public class McpOAuthClientDataSeedContributor( IConfiguration configuration, IMcpOAuthClientManager clientManager) : IDataSeedContributor, ITransientDependency { public async Task SeedAsync(DataSeedContext context) { // OpenIddict uygulamalari host kapsamindadir; kiraci seed turlarinda tekrarlanmaz. if (context.TenantId is not null) { return; } foreach (var clientId in new[] { McpConsts.OAuthClientId, McpConsts.LocalOAuthClientId }) { var redirectUris = configuration.GetSection($"OpenIddict:Applications:{clientId}:RedirectUris").Get(); if (redirectUris is null || redirectUris.Length == 0) { continue; } await clientManager.EnsureKnownClientAsync(clientId, redirectUris); } } }