using Microsoft.EntityFrameworkCore; using Microsoft.Extensions.DependencyInjection; using SurveyLib.Core.Repositories; using SurveyLib.Infrastructure.EFCore.Data; using SurveyLib.Infrastructure.EFCore.Repositories; namespace SurveyLib.Infrastructure.EFCore.Integration; public static class InfrastructureExtensions { public static IServiceCollection AddSurveyInfrastructure(this IServiceCollection services, string connectionString, DBType dbType) { switch (dbType) { case DBType.Sqlite: services.AddDbContext(options => options.UseSqlite(connectionString)); break; case DBType.PostgreSql: services.AddDbContext(options => options.UseNpgsql(connectionString)); break; default: throw new ArgumentOutOfRangeException(nameof(dbType), dbType, null); } services.AddScoped(); services.AddScoped(); services.AddScoped(); services.AddScoped(); return services; } }