using LiteCharms.Features.Postgres; namespace LiteCharms.Features.Extensions; public static class Postgres { public const string SchedulerDbConfigName = "PostgresScheduler"; public const string DataProtectionDbConfigName = "PostgresDataProtection"; public static IServiceCollection AddDataProtectionDatabase(this IServiceCollection services, IConfiguration configuration) { var connectionString = configuration.GetConnectionString(DataProtectionDbConfigName); var dataSourceBuilder = new NpgsqlDataSourceBuilder(connectionString); dataSourceBuilder.ConfigureTypeLoading(options => { options.EnableTypeLoading(false); }); var dataSource = dataSourceBuilder.Build(); services.AddSingleton(dataSource); services.AddPooledDbContextFactory(options => options.UseNpgsql(dataSource)); return services; } }