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 istemcisini () seed eder. Geri donus
/// adresleri OpenIddict:Applications:Platform_Mcp:RedirectUris ayarindadir; yeni bir
/// saglayici eklemek bu listeye callback eklemektir.
///
public class McpOAuthClientDataSeedContributor(
IConfiguration configuration,
IMcpOAuthClientManager clientManager) : IDataSeedContributor, ITransientDependency
{
private const string RedirectUrisKey = "OpenIddict:Applications:Platform_Mcp:RedirectUris";
public async Task SeedAsync(DataSeedContext context)
{
// OpenIddict uygulamalari host kapsamindadir; kiraci seed turlarinda tekrarlanmaz.
if (context.TenantId is not null)
{
return;
}
var redirectUris = configuration.GetSection(RedirectUrisKey).Get();
if (redirectUris is null || redirectUris.Length == 0)
{
return;
}
await clientManager.EnsureKnownClientAsync(redirectUris);
}
}