mirror of
https://github.com/aaronpo97/the-biergarten-app.git
synced 2026-10-14 17:54:42 +00:00
Extract shared configuration helpers into Infrastructure.Configuration library (#248)
This commit is contained in:
@@ -1,10 +0,0 @@
|
||||
using Microsoft.Extensions.Configuration;
|
||||
|
||||
namespace Database.Connection;
|
||||
|
||||
public static class ConfigurationHelpers
|
||||
{
|
||||
public static string GetKeyOrThrow(IConfiguration configuration, string key) =>
|
||||
configuration[key]
|
||||
?? throw new InvalidOperationException($"The {key} environment variable is not set.");
|
||||
}
|
||||
@@ -11,11 +11,14 @@
|
||||
<PackageReference Include="Microsoft.SqlServer.Types" Version="160.1000.6" />
|
||||
<PackageReference
|
||||
Include="Microsoft.Extensions.Configuration.Abstractions"
|
||||
Version="9.0.0"
|
||||
Version="10.0.1"
|
||||
/>
|
||||
<PackageReference
|
||||
Include="Microsoft.Extensions.DependencyInjection.Abstractions"
|
||||
Version="10.0.0"
|
||||
/>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\..\Infrastructure\Infrastructure.Configuration\Infrastructure.Configuration.csproj" />
|
||||
</ItemGroup>
|
||||
</Project>
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
using System.Data.Common;
|
||||
using Infrastructure.Configuration;
|
||||
using Microsoft.Data.SqlClient;
|
||||
using Microsoft.Extensions.Configuration;
|
||||
|
||||
@@ -19,7 +19,7 @@ public class DefaultSqlConnectionFactory(IConfiguration configuration) : ISqlCon
|
||||
{
|
||||
get
|
||||
{
|
||||
string? fullConnectionString = configuration["DB_CONNECTION_STRING"];
|
||||
string? fullConnectionString = configuration[ConfigurationKeys.DbConnectionString];
|
||||
if (!string.IsNullOrEmpty(fullConnectionString))
|
||||
return fullConnectionString;
|
||||
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
using Infrastructure.Configuration;
|
||||
using Microsoft.Data.SqlClient;
|
||||
using Microsoft.Extensions.Configuration;
|
||||
|
||||
@@ -14,9 +15,15 @@ public static class SqlConnectionStringHelper
|
||||
) =>
|
||||
new()
|
||||
{
|
||||
DataSource = ConfigurationHelpers.GetKeyOrThrow(configuration, "DB_SERVER"),
|
||||
UserID = ConfigurationHelpers.GetKeyOrThrow(configuration, "DB_USER"),
|
||||
Password = ConfigurationHelpers.GetKeyOrThrow(configuration, "DB_PASSWORD"),
|
||||
DataSource = ConfigurationHelpers.GetKeyOrThrow(
|
||||
configuration,
|
||||
ConfigurationKeys.DbServer
|
||||
),
|
||||
UserID = ConfigurationHelpers.GetKeyOrThrow(configuration, ConfigurationKeys.DbUser),
|
||||
Password = ConfigurationHelpers.GetKeyOrThrow(
|
||||
configuration,
|
||||
ConfigurationKeys.DbPassword
|
||||
),
|
||||
TrustServerCertificate = ResolveTrustServerCertificate(configuration),
|
||||
Encrypt = true,
|
||||
};
|
||||
@@ -38,7 +45,10 @@ public static class SqlConnectionStringHelper
|
||||
try
|
||||
{
|
||||
SqlConnectionStringBuilder builder = MakeConfiguredConnectionBuilder(configuration);
|
||||
builder.InitialCatalog = ConfigurationHelpers.GetKeyOrThrow(configuration, "DB_NAME");
|
||||
builder.InitialCatalog = ConfigurationHelpers.GetKeyOrThrow(
|
||||
configuration,
|
||||
ConfigurationKeys.DbName
|
||||
);
|
||||
connectionString = builder.ConnectionString;
|
||||
return true;
|
||||
}
|
||||
@@ -95,7 +105,7 @@ public static class SqlConnectionStringHelper
|
||||
private static bool ResolveTrustServerCertificate(IConfiguration configuration)
|
||||
{
|
||||
return !bool.TryParse(
|
||||
configuration["DB_TRUST_SERVER_CERTIFICATE"],
|
||||
configuration[ConfigurationKeys.DbTrustServerCertificate],
|
||||
out bool trustServerCertificate
|
||||
) || trustServerCertificate;
|
||||
}
|
||||
|
||||
@@ -19,6 +19,7 @@
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\..\Database\Database.Connection\Database.Connection.csproj" />
|
||||
<ProjectReference Include="..\..\Infrastructure\Infrastructure.Configuration\Infrastructure.Configuration.csproj" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<EmbeddedResource Include="scripts/**/*.sql" />
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
using Database.Connection;
|
||||
using Infrastructure.Configuration;
|
||||
using Microsoft.Data.SqlClient;
|
||||
using Microsoft.Extensions.Configuration;
|
||||
|
||||
@@ -21,7 +22,7 @@ internal static class Program
|
||||
.Build();
|
||||
|
||||
bool clearDatabase = string.Equals(
|
||||
configuration["CLEAR_DATABASE"],
|
||||
configuration[ConfigurationKeys.ClearDatabase],
|
||||
"true",
|
||||
StringComparison.OrdinalIgnoreCase
|
||||
);
|
||||
|
||||
Reference in New Issue
Block a user