Security #1
@@ -1,3 +1,5 @@
|
|||||||
|
using static PostFundManagement.Infrastructure.Extensions.Constants;
|
||||||
|
|
||||||
namespace PostFundManagement.Infrastructure.Database;
|
namespace PostFundManagement.Infrastructure.Database;
|
||||||
|
|
||||||
public sealed class ApplicationDbContextFactory : IDesignTimeDbContextFactory<ApplicationDbContext>
|
public sealed class ApplicationDbContextFactory : IDesignTimeDbContextFactory<ApplicationDbContext>
|
||||||
@@ -12,8 +14,8 @@ public sealed class ApplicationDbContextFactory : IDesignTimeDbContextFactory<Ap
|
|||||||
|
|
||||||
var optionsBuilder = new DbContextOptionsBuilder<ApplicationDbContext>();
|
var optionsBuilder = new DbContextOptionsBuilder<ApplicationDbContext>();
|
||||||
|
|
||||||
var connectionString = configuration.GetConnectionString("PfmDatabase")
|
var connectionString = configuration.GetConnectionString(DatabaseConfigName)
|
||||||
?? throw new InvalidOperationException("Connection string 'PfmDatabase' was not found in configuration.");
|
?? throw new InvalidOperationException($"Connection string '{DatabaseConfigName}' was not found in configuration.");
|
||||||
|
|
||||||
optionsBuilder.UseNpgsql(connectionString, npgsqlOptions => npgsqlOptions.MigrationsAssembly(typeof(ApplicationDbContext).Assembly.FullName));
|
optionsBuilder.UseNpgsql(connectionString, npgsqlOptions => npgsqlOptions.MigrationsAssembly(typeof(ApplicationDbContext).Assembly.FullName));
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,6 @@
|
|||||||
|
namespace PostFundManagement.Infrastructure.Extensions;
|
||||||
|
|
||||||
|
public static class Constants
|
||||||
|
{
|
||||||
|
public const string DatabaseConfigName = "PfmDatabase";
|
||||||
|
}
|
||||||
@@ -0,0 +1,17 @@
|
|||||||
|
using PostFundManagement.Infrastructure.Database;
|
||||||
|
using static PostFundManagement.Infrastructure.Extensions.Constants;
|
||||||
|
|
||||||
|
namespace PostFundManagement.Infrastructure.Extensions;
|
||||||
|
|
||||||
|
public static class Postgres
|
||||||
|
{
|
||||||
|
public static IServiceCollection AddApplicationDbContext(this IServiceCollection services, IConfiguration configuration)
|
||||||
|
{
|
||||||
|
var connectionString = configuration.GetConnectionString(DatabaseConfigName)
|
||||||
|
?? throw new InvalidOperationException($"Connection string '{DatabaseConfigName}' was not found in configuration.");
|
||||||
|
|
||||||
|
services.AddPooledDbContextFactory<ApplicationDbContext>(builder => builder.UseNpgsql(connectionString));
|
||||||
|
|
||||||
|
return services;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -27,13 +27,14 @@
|
|||||||
<Using Include="Microsoft.EntityFrameworkCore.Design" />
|
<Using Include="Microsoft.EntityFrameworkCore.Design" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
<!-- Configuration -->
|
<!-- Extensions -->
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<PackageReference Include="Microsoft.Extensions.Configuration" Version="10.0.11" />
|
<PackageReference Include="Microsoft.Extensions.Configuration" Version="10.0.11" />
|
||||||
<PackageReference Include="Microsoft.Extensions.Configuration.EnvironmentVariables" Version="10.0.11" />
|
<PackageReference Include="Microsoft.Extensions.Configuration.EnvironmentVariables" Version="10.0.11" />
|
||||||
<PackageReference Include="Microsoft.Extensions.Configuration.UserSecrets" Version="10.0.11" />
|
<PackageReference Include="Microsoft.Extensions.Configuration.UserSecrets" Version="10.0.11" />
|
||||||
|
|
||||||
<Using Include="Microsoft.Extensions.Configuration" />
|
<Using Include="Microsoft.Extensions.Configuration" />
|
||||||
|
<Using Include="Microsoft.Extensions.DependencyInjection" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
|
|||||||
Reference in New Issue
Block a user