Skip to content

Commit

Permalink
Merge pull request #1088 from cabinetoffice/tidying/data-source
Browse files Browse the repository at this point in the history
DP-712: Use the DataSource rather than a connection string to configure the database
  • Loading branch information
jakzal authored Jan 6, 2025
2 parents a3fa85f + 9986a7f commit 6e13459
Show file tree
Hide file tree
Showing 7 changed files with 23 additions and 16 deletions.
5 changes: 3 additions & 2 deletions Services/CO.CDP.DataSharing.WebApi/Program.cs
Original file line number Diff line number Diff line change
Expand Up @@ -46,8 +46,9 @@
builder.Services.AddAutoMapper(typeof(DataSharingProfile));

var connectionString = ConnectionStringHelper.GetConnectionString(builder.Configuration, "OrganisationInformationDatabase");
builder.Services.AddHealthChecks().AddNpgSql(connectionString);
builder.Services.AddDbContext<OrganisationInformationContext>(o => o.UseNpgsql(connectionString));
builder.Services.AddSingleton(new NpgsqlDataSourceBuilder(connectionString).Build());
builder.Services.AddHealthChecks().AddNpgSql(sp => sp.GetRequiredService<NpgsqlDataSource>());
builder.Services.AddDbContext<OrganisationInformationContext>((sp, o) => o.UseNpgsql(sp.GetRequiredService<NpgsqlDataSource>()));

builder.Services.AddScoped<IDataService, DataService>();
builder.Services.AddScoped<IPdfGenerator, PdfGenerator>();
Expand Down
9 changes: 5 additions & 4 deletions Services/CO.CDP.EntityVerification/Program.cs
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@
using CO.CDP.WebApi.Foundation;
using Microsoft.EntityFrameworkCore;
using System.Reflection;
using Npgsql;
using IdentifierRegistries = CO.CDP.EntityVerification.Model.IdentifierRegistries;

var builder = WebApplication.CreateBuilder(args);
Expand All @@ -27,8 +28,9 @@

builder.Services.AddHealthChecks();
builder.Services.AddProblemDetails();
builder.Services.AddDbContext<EntityVerificationContext>(o =>
o.UseNpgsql(ConnectionStringHelper.GetConnectionString(builder.Configuration, "EntityVerificationDatabase")));

builder.Services.AddSingleton(_ => new NpgsqlDataSourceBuilder(ConnectionStringHelper.GetConnectionString(builder.Configuration, "EntityVerificationDatabase")).Build());
builder.Services.AddDbContext<EntityVerificationContext>((sp, o) => o.UseNpgsql(sp.GetRequiredService<NpgsqlDataSource>()));
builder.Services.AddScoped<IPponRepository, DatabasePponRepository>();
builder.Services.AddScoped<IPponService, PponService>();

Expand All @@ -38,8 +40,7 @@

if (Assembly.GetEntryAssembly().IsRunAs("CO.CDP.EntityVerification"))
{
builder.Services.AddHealthChecks()
.AddNpgSql(ConnectionStringHelper.GetConnectionString(builder.Configuration, "EntityVerificationDatabase"));
builder.Services.AddHealthChecks().AddNpgSql(sp => sp.GetRequiredService<NpgsqlDataSource>());

builder.Services
.AddAwsConfiguration(builder.Configuration)
Expand Down
5 changes: 3 additions & 2 deletions Services/CO.CDP.Forms.WebApi/Program.cs
Original file line number Diff line number Diff line change
Expand Up @@ -47,8 +47,9 @@
builder.Services.AddProblemDetails();

var connectionString = ConnectionStringHelper.GetConnectionString(builder.Configuration, "OrganisationInformationDatabase");
builder.Services.AddHealthChecks().AddNpgSql(connectionString);
builder.Services.AddDbContext<OrganisationInformationContext>(o => o.UseNpgsql(connectionString));
builder.Services.AddSingleton(new NpgsqlDataSourceBuilder(connectionString).Build());
builder.Services.AddHealthChecks().AddNpgSql(sp => sp.GetRequiredService<NpgsqlDataSource>());
builder.Services.AddDbContext<OrganisationInformationContext>((sp, o) => o.UseNpgsql(sp.GetRequiredService<NpgsqlDataSource>()));

builder.Services.AddScoped<IFormRepository, DatabaseFormRepository>();
builder.Services.AddScoped<IOrganisationRepository, DatabaseOrganisationRepository>();
Expand Down
5 changes: 3 additions & 2 deletions Services/CO.CDP.Organisation.Authority/Program.cs
Original file line number Diff line number Diff line change
Expand Up @@ -19,8 +19,9 @@
builder.Services.AddAutoMapper(typeof(WebApiToPersistenceProfile));

var connectionString = ConnectionStringHelper.GetConnectionString(builder.Configuration, "OrganisationInformationDatabase");
builder.Services.AddHealthChecks().AddNpgSql(connectionString);
builder.Services.AddDbContext<OrganisationInformationContext>(o => o.UseNpgsql(connectionString));
builder.Services.AddSingleton(new NpgsqlDataSourceBuilder(connectionString).Build());
builder.Services.AddHealthChecks().AddNpgSql(sp => sp.GetRequiredService<NpgsqlDataSource>());
builder.Services.AddDbContext<OrganisationInformationContext>((sp, o) => o.UseNpgsql(sp.GetRequiredService<NpgsqlDataSource>()));

builder.Services.AddScoped<IPersonRepository, DatabasePersonRepository>();
builder.Services.AddScoped<ITenantRepository, DatabaseTenantRepository>();
Expand Down
5 changes: 3 additions & 2 deletions Services/CO.CDP.Organisation.WebApi/Program.cs
Original file line number Diff line number Diff line change
Expand Up @@ -56,8 +56,9 @@
}

var connectionString = ConnectionStringHelper.GetConnectionString(builder.Configuration, "OrganisationInformationDatabase");
builder.Services.AddHealthChecks().AddNpgSql(connectionString);
builder.Services.AddDbContext<OrganisationInformationContext>(o => o.UseNpgsql(connectionString));
builder.Services.AddSingleton(new NpgsqlDataSourceBuilder(connectionString).Build());
builder.Services.AddHealthChecks().AddNpgSql(sp => sp.GetRequiredService<NpgsqlDataSource>());
builder.Services.AddDbContext<OrganisationInformationContext>((sp, o) => o.UseNpgsql(sp.GetRequiredService<NpgsqlDataSource>()));

builder.Services.AddScoped<IIdentifierService, IdentifierService>();
builder.Services.AddScoped<IOrganisationRepository, DatabaseOrganisationRepository>();
Expand Down
5 changes: 3 additions & 2 deletions Services/CO.CDP.Person.WebApi/Program.cs
Original file line number Diff line number Diff line change
Expand Up @@ -25,8 +25,9 @@
builder.Services.AddAutoMapper(typeof(WebApiToPersistenceProfile));

var connectionString = ConnectionStringHelper.GetConnectionString(builder.Configuration, "OrganisationInformationDatabase");
builder.Services.AddHealthChecks().AddNpgSql(connectionString);
builder.Services.AddDbContext<OrganisationInformationContext>(o => o.UseNpgsql(connectionString));
builder.Services.AddSingleton(new NpgsqlDataSourceBuilder(connectionString).Build());
builder.Services.AddHealthChecks().AddNpgSql(sp => sp.GetRequiredService<NpgsqlDataSource>());
builder.Services.AddDbContext<OrganisationInformationContext>((sp, o) => o.UseNpgsql(sp.GetRequiredService<NpgsqlDataSource>()));

builder.Services.AddScoped<IPersonRepository, DatabasePersonRepository>();
builder.Services.AddScoped<IPersonInviteRepository, DatabasePersonInviteRepository>();
Expand Down
5 changes: 3 additions & 2 deletions Services/CO.CDP.Tenant.WebApi/Program.cs
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,8 @@
builder.Services.AddAutoMapper(typeof(WebApiToPersistenceProfile));

var connectionString = ConnectionStringHelper.GetConnectionString(builder.Configuration, "OrganisationInformationDatabase");
builder.Services.AddDbContext<OrganisationInformationContext>(o => o.UseNpgsql(connectionString));
builder.Services.AddSingleton(new NpgsqlDataSourceBuilder(connectionString).Build());
builder.Services.AddDbContext<OrganisationInformationContext>((sp, o) => o.UseNpgsql(sp.GetRequiredService<NpgsqlDataSource>()));

builder.Services.AddScoped<ITenantRepository, DatabaseTenantRepository>();
builder.Services.AddScoped<IPersonRepository, DatabasePersonRepository>();
Expand All @@ -50,7 +51,7 @@
.AddAmazonCloudWatchLogsService()
.AddCloudWatchSerilog(builder.Configuration);

builder.Services.AddHealthChecks().AddNpgSql(connectionString);
builder.Services.AddHealthChecks().AddNpgSql(sp => sp.GetRequiredService<NpgsqlDataSource>());
}

var app = builder.Build();
Expand Down

0 comments on commit 6e13459

Please sign in to comment.