28 lines
924 B
C#
28 lines
924 B
C#
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<DataProtectionDbContext>(options =>
|
|
options.UseNpgsql(dataSource));
|
|
|
|
return services;
|
|
}
|
|
}
|