Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 8 additions & 2 deletions MobileConfiguration/Database/ConfigurationContext.cs
Original file line number Diff line number Diff line change
Expand Up @@ -17,14 +17,20 @@ public ConfigurationContext(String connectionString) {
this.ConnectionString = connectionString;
}

public ConfigurationContext(DbContextOptions<ConfigurationContext> 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);
}
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,33 +29,18 @@ public async Task DeleteConnectionStringConfiguration(String externalIdentifier,

public async Task<String> 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();
}
Expand Down
12 changes: 5 additions & 7 deletions MobileConfiguration/Program.cs
Original file line number Diff line number Diff line change
Expand Up @@ -25,8 +25,8 @@
WebApplicationBuilder builder = WebApplication.CreateBuilder(args);
builder.Host.UseWindowsService();
String path = Assembly.GetExecutingAssembly().Location;
path = Path.GetDirectoryName(path);

Check warning on line 28 in MobileConfiguration/Program.cs

View workflow job for this annotation

GitHub Actions / Build and Test Pull Requests

Converting null literal or possible null value to non-nullable type.
builder.Configuration.SetBasePath(path)

Check warning on line 29 in MobileConfiguration/Program.cs

View workflow job for this annotation

GitHub Actions / Build and Test Pull Requests

Possible null reference argument for parameter 'basePath' in 'IConfigurationBuilder FileConfigurationExtensions.SetBasePath(IConfigurationBuilder builder, string basePath)'.
.AddJsonFile("hosting.json", optional: true)
.AddJsonFile("hosting.development.json", optional: true)
.AddEnvironmentVariables();
Expand All @@ -49,11 +49,11 @@
builder.Services.AddSingleton<Func<String, ConfigurationContext>>(cont => (connectionString) => new ConfigurationContext(contextBuilder.Options));
}
else {

String connectionString = ConfigurationReader.GetConnectionString("ConfigurationDatabase");
builder.Services.AddDbContext<ConfigurationContext>(builder => builder.UseSqlServer(connectionString));
builder.Services.AddSingleton<Func<String, ConfigurationContext>>(cont => connectionString => new ConfigurationContext(connectionString));
builder.Services.AddSingleton<Func<String, ConfigurationContext>>(cont => (connectionString) => { return new ConfigurationContext(connectionString); });
}

bool logRequests = ConfigurationReaderExtensions.GetValueOrDefault<Boolean>("MiddlewareLogging", "LogRequests", true);
bool logResponses = ConfigurationReaderExtensions.GetValueOrDefault<Boolean>("MiddlewareLogging", "LogResponses", true);
LogLevel middlewareLogLevel = ConfigurationReaderExtensions.GetValueOrDefault<LogLevel>("MiddlewareLogging", "MiddlewareLogLevel", LogLevel.Warning);
Expand Down Expand Up @@ -82,8 +82,8 @@

var loggerFactory = app.Services.GetRequiredService<ILoggerFactory>();

loggerFactory.ConfigureNLog(Path.Combine(path, nlogConfigFilename));

Check warning on line 85 in MobileConfiguration/Program.cs

View workflow job for this annotation

GitHub Actions / Build and Test Pull Requests

'ConfigureExtensions.ConfigureNLog(ILoggerFactory, string)' is obsolete: 'Instead use NLog.LogManager.Setup().LoadConfigurationFromFile()'
loggerFactory.AddNLog();

Check warning on line 86 in MobileConfiguration/Program.cs

View workflow job for this annotation

GitHub Actions / Build and Test Pull Requests

'ConfigureExtensions.AddNLog(ILoggerFactory)' is obsolete: 'Instead use ILoggingBuilder.AddNLog() or IHostBuilder.UseNLog()'

ILogger logger = loggerFactory.CreateLogger("MobileConfiguration");

Expand All @@ -106,15 +106,13 @@

async Task InitializeDatabase(IApplicationBuilder app)
{
using (IServiceScope serviceScope = app.ApplicationServices.GetService<IServiceScopeFactory>().CreateScope())

Check warning on line 109 in MobileConfiguration/Program.cs

View workflow job for this annotation

GitHub Actions / Build and Test Pull Requests

Dereference of a possibly null reference.
{
var dbContextFactory = serviceScope.ServiceProvider.GetRequiredService<Shared.EntityFramework.IDbContextFactory<ConfigurationContext>>();

var dbContext = await dbContextFactory.GetContext(Guid.NewGuid(), "ConfigurationDatabase", CancellationToken.None);

ConfigurationContext dbContext = serviceScope.ServiceProvider.GetRequiredService<ConfigurationContext>();

if (dbContext!= null && dbContext.Database.IsRelational())
{
dbContext.Database.Migrate();
await dbContext.MigrateAsync(CancellationToken.None);
}
}
}
Expand All @@ -134,7 +132,7 @@

return (T)Convert.ChangeType(value, typeof(T));
}
catch (KeyNotFoundException kex)

Check warning on line 135 in MobileConfiguration/Program.cs

View workflow job for this annotation

GitHub Actions / Build and Test Pull Requests

The variable 'kex' is declared but never used
{
return defaultValue;
}
Expand Down
2 changes: 1 addition & 1 deletion MobileConfiguration/appsettings.json
Original file line number Diff line number Diff line change
Expand Up @@ -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"
}
}
Loading