diff --git a/Services/SciMaterials.Services.Database/Extensions/ServiceCollectionExtensions.cs b/Services/SciMaterials.Services.Database/Extensions/ServiceCollectionExtensions.cs index 16175912..9d4eafb5 100644 --- a/Services/SciMaterials.Services.Database/Extensions/ServiceCollectionExtensions.cs +++ b/Services/SciMaterials.Services.Database/Extensions/ServiceCollectionExtensions.cs @@ -1,4 +1,6 @@ -using Microsoft.Extensions.Configuration; +using System.Data.Common; + +using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; using SciMaterials.Contracts.Database.Configuration; using SciMaterials.Contracts.Database.Initialization; @@ -15,11 +17,23 @@ public static class ServiceCollectionExtensions public static IServiceCollection AddDatabaseProviders(this IServiceCollection services, IConfiguration configuration) { - var dbSettings = configuration.GetSection("DbSettings") + var db_settings = configuration.GetSection("DbSettings"); + var dbSettings = db_settings .Get(); var providerName = dbSettings.GetProviderName(); - var connectionString = configuration.GetSection("DbSettings").GetConnectionString(dbSettings.DbProvider); + var connectionString = db_settings.GetConnectionString(dbSettings.DbProvider); + + var connection_settings = db_settings.GetSection("ConnectionSettings"); + + var connection_string_builder = new DbConnectionStringBuilder { ConnectionString = connectionString }; + foreach (var parameter in connection_settings.GetChildren()) + if(parameter.Value is { Length: > 0 } value) + { + connection_string_builder[parameter.Key] = value; + } + + connectionString = connection_string_builder.ConnectionString; switch (providerName.ToLower()) { diff --git a/UI/SciMaterials.UI.MVC/appsettings.json b/UI/SciMaterials.UI.MVC/appsettings.json index 19834909..727e8b8a 100644 --- a/UI/SciMaterials.UI.MVC/appsettings.json +++ b/UI/SciMaterials.UI.MVC/appsettings.json @@ -14,7 +14,11 @@ }, "DbProvider": "SqlServer.SQLEXPRESS", "RemoveAtStart": "true", - "UseDataSeeder": "true" + "UseDataSeeder": "true", + "ConnectionSettings": { + "User Id": null, + "Password": null + } }, "Logging": { "LogLevel": {