Core.BluePrint.Packages/Core.Blueprint.SQLServer/Configuration/RegisterBlueprint.cs

39 lines
1.6 KiB
C#

using Azure.Identity;
using Core.Blueprint.DAL.SQLServer;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
namespace Core.Blueprint.SQLServer.Configuration
{
/// <summary>
/// Provides extension methods for configuring SQL Server.
/// </summary>
public static class RegisterBlueprint
{
/// <summary>
/// Configures SQL Server services, including the database context and generic repository, for dependency injection.
/// </summary>
/// <param name="services">The service collection to which the SQL Server services will be added.</param>
/// <param name="configuration">The application configuration object for accessing settings such as connection strings.</param>
/// <returns>An updated <see cref="IServiceCollection"/> with SQL Server services registered.</returns>
public static IServiceCollection AddSQLServer(this IServiceCollection services, IConfiguration configuration)
{
var environment = Environment.GetEnvironmentVariable("ASPNETCORE_ENVIRONMENT") ?? string.Empty;
if (environment != "Local")
{
var chainedCredentials = new ChainedTokenCredential(
new ManagedIdentityCredential(),
new SharedTokenCacheCredential(),
new VisualStudioCredential(),
new VisualStudioCodeCredential()
);
}
services.AddScoped(typeof(IEntityRepository<,>), typeof(EntityRepository<,>));
return services;
}
}
}