diff --git a/MobileConfiguration/Database/ConfigurationContext.cs b/MobileConfiguration/Database/ConfigurationContext.cs index 11a3c16..f75f50a 100644 --- a/MobileConfiguration/Database/ConfigurationContext.cs +++ b/MobileConfiguration/Database/ConfigurationContext.cs @@ -17,14 +17,20 @@ public ConfigurationContext(String connectionString) { this.ConnectionString = connectionString; } - public ConfigurationContext(DbContextOptions dbContextOptions) : base(dbContextOptions) { + public ConfigurationContext(DbContextOptions dbContextOptions) : base(dbContextOptions) { } #endregion public virtual async Task MigrateAsync(CancellationToken cancellationToken) { if (this.Database.IsSqlServer()) { - await this.Database.MigrateAsync(cancellationToken); + try { + await this.Database.MigrateAsync(cancellationToken); + } + catch (Exception ex) { + // Log the exception or handle it as needed + throw new InvalidOperationException("An error occurred while migrating the database.", ex); + } } } diff --git a/MobileConfiguration/Database/ConfigurationReaderConnectionStringRepository.cs b/MobileConfiguration/Database/ConfigurationReaderConnectionStringRepository.cs index c2eab31..2fd4b15 100644 --- a/MobileConfiguration/Database/ConfigurationReaderConnectionStringRepository.cs +++ b/MobileConfiguration/Database/ConfigurationReaderConnectionStringRepository.cs @@ -29,33 +29,18 @@ public async Task DeleteConnectionStringConfiguration(String externalIdentifier, public async Task GetConnectionString(String externalIdentifier, String connectionStringIdentifier, - CancellationToken cancellationToken) - { + CancellationToken cancellationToken) { String connectionString = string.Empty; String databaseName = string.Empty; - String databaseEngine = ConfigurationReader.GetValue("AppSettings", "DatabaseEngine"); - databaseName = $"{connectionStringIdentifier}{externalIdentifier}"; connectionString = ConfigurationReader.GetConnectionString(connectionStringIdentifier); DbConnectionStringBuilder builder = null; - if (databaseEngine == "MySql") - { - builder = new MySqlConnectionStringBuilder(connectionString) - { - Database = databaseName - }; - } - else - { - // Default to SQL Server - builder = new SqlConnectionStringBuilder(connectionString) - { - InitialCatalog = databaseName - }; - } + // Default to SQL Server + builder = new SqlConnectionStringBuilder(connectionString) { InitialCatalog = databaseName }; + return builder.ToString(); } diff --git a/MobileConfiguration/Program.cs b/MobileConfiguration/Program.cs index 12682c7..d3c76d8 100644 --- a/MobileConfiguration/Program.cs +++ b/MobileConfiguration/Program.cs @@ -49,11 +49,11 @@ builder.Services.AddSingleton>(cont => (connectionString) => new ConfigurationContext(contextBuilder.Options)); } else { + String connectionString = ConfigurationReader.GetConnectionString("ConfigurationDatabase"); builder.Services.AddDbContext(builder => builder.UseSqlServer(connectionString)); - builder.Services.AddSingleton>(cont => connectionString => new ConfigurationContext(connectionString)); + builder.Services.AddSingleton>(cont => (connectionString) => { return new ConfigurationContext(connectionString); }); } - bool logRequests = ConfigurationReaderExtensions.GetValueOrDefault("MiddlewareLogging", "LogRequests", true); bool logResponses = ConfigurationReaderExtensions.GetValueOrDefault("MiddlewareLogging", "LogResponses", true); LogLevel middlewareLogLevel = ConfigurationReaderExtensions.GetValueOrDefault("MiddlewareLogging", "MiddlewareLogLevel", LogLevel.Warning); @@ -108,13 +108,11 @@ async Task InitializeDatabase(IApplicationBuilder app) { using (IServiceScope serviceScope = app.ApplicationServices.GetService().CreateScope()) { - var dbContextFactory = serviceScope.ServiceProvider.GetRequiredService>(); - - var dbContext = await dbContextFactory.GetContext(Guid.NewGuid(), "ConfigurationDatabase", CancellationToken.None); - + ConfigurationContext dbContext = serviceScope.ServiceProvider.GetRequiredService(); + if (dbContext!= null && dbContext.Database.IsRelational()) { - dbContext.Database.Migrate(); + await dbContext.MigrateAsync(CancellationToken.None); } } } diff --git a/MobileConfiguration/appsettings.json b/MobileConfiguration/appsettings.json index 3dffef7..76cabe1 100644 --- a/MobileConfiguration/appsettings.json +++ b/MobileConfiguration/appsettings.json @@ -4,6 +4,6 @@ "InMemoryDatabase": false }, "ConnectionStrings": { - "ConfigurationDatabase": "server=127.0.0.1;user id=sa;password=Sc0tland;database=ConfigurationHost;Encrypt=false" + "ConfigurationDatabase": "server=127.0.0.1;user id=sa;password=sp1ttal;database=ConfigurationHost;Encrypt=false" } }