diff --git a/.gitignore b/.gitignore
index dfcfd56..aa4aab9 100644
--- a/.gitignore
+++ b/.gitignore
@@ -9,6 +9,8 @@
*.user
*.userosscache
*.sln.docstates
+*.[Dd]evelopment.json
+*.[Dd]evelopment.config
# User-specific files (MonoDevelop/Xamarin Studio)
*.userprefs
diff --git a/TransactionProcessing.SchedulerService/TransactionProcessing.SchedulerService/Startup.cs b/TransactionProcessing.SchedulerService/TransactionProcessing.SchedulerService/Startup.cs
index aed6acd..39a135e 100644
--- a/TransactionProcessing.SchedulerService/TransactionProcessing.SchedulerService/Startup.cs
+++ b/TransactionProcessing.SchedulerService/TransactionProcessing.SchedulerService/Startup.cs
@@ -1,6 +1,7 @@
namespace TransactionProcessing.SchedulerService
{
using System;
+ using System.Configuration;
using Jobs;
using Jobs.GenerateTransactions;
using Microsoft.AspNetCore.Builder;
@@ -13,10 +14,61 @@ namespace TransactionProcessing.SchedulerService
public class Startup
{
- public IConfiguration Configuration { get; }
- public Startup(IConfiguration configuration)
+ ///
+ /// Gets or sets the configuration.
+ ///
+ ///
+ /// The configuration.
+ ///
+ public static IConfigurationRoot Configuration { get; set; }
+
+ ///
+ /// Gets or sets the web host environment.
+ ///
+ ///
+ /// The web host environment.
+ ///
+ public static IWebHostEnvironment WebHostEnvironment { get; set; }
+
+ public Startup(IWebHostEnvironment webHostEnvironment)
{
- this.Configuration = configuration;
+ //this.Configuration = configuration;
+ IConfigurationBuilder builder = new ConfigurationBuilder().SetBasePath(webHostEnvironment.ContentRootPath)
+ .AddJsonFile("/home/txnproc/config/appsettings.json", true, true)
+ .AddJsonFile($"/home/txnproc/config/appsettings.{webHostEnvironment.EnvironmentName}.json", optional: true)
+ .AddJsonFile("appsettings.json", optional: true, reloadOnChange: true)
+ .AddJsonFile($"appsettings.{webHostEnvironment.EnvironmentName}.json", optional: true, reloadOnChange: true)
+ .AddEnvironmentVariables();
+
+ Startup.Configuration = builder.Build();
+ Startup.WebHostEnvironment = webHostEnvironment;
+
+ var connectionString = Configuration.GetConnectionString("SchedulerReadModel");
+ AddOrUpdateConnectionString("SchedulerReadModel", connectionString);
+ }
+
+ public static void AddOrUpdateConnectionString(string name, string connectionString)
+ {
+ try
+ {
+ var configFile = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
+ var settings = configFile.ConnectionStrings.ConnectionStrings;
+
+ if (settings[name] == null)
+ {
+ settings.Add(new ConnectionStringSettings(name, connectionString));
+ }
+ else
+ {
+ settings[name].ConnectionString = connectionString;
+ }
+ configFile.Save(ConfigurationSaveMode.Modified);
+ ConfigurationManager.RefreshSection(configFile.AppSettings.SectionInformation.Name);
+ }
+ catch (ConfigurationErrorsException)
+ {
+ Console.WriteLine("Error writing connection string");
+ }
}
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
diff --git a/TransactionProcessing.SchedulerService/TransactionProcessing.SchedulerService/appsettings.Development.json b/TransactionProcessing.SchedulerService/TransactionProcessing.SchedulerService/appsettings.Development.json
deleted file mode 100644
index 8983e0f..0000000
--- a/TransactionProcessing.SchedulerService/TransactionProcessing.SchedulerService/appsettings.Development.json
+++ /dev/null
@@ -1,9 +0,0 @@
-{
- "Logging": {
- "LogLevel": {
- "Default": "Information",
- "Microsoft": "Warning",
- "Microsoft.Hosting.Lifetime": "Information"
- }
- }
-}
diff --git a/TransactionProcessing.SchedulerService/TransactionProcessing.SchedulerService/appsettings.json b/TransactionProcessing.SchedulerService/TransactionProcessing.SchedulerService/appsettings.json
index 270a6ab..1a22697 100644
--- a/TransactionProcessing.SchedulerService/TransactionProcessing.SchedulerService/appsettings.json
+++ b/TransactionProcessing.SchedulerService/TransactionProcessing.SchedulerService/appsettings.json
@@ -7,6 +7,6 @@
}
},
"ConnectionStrings": {
- "SchedulerReadModel": "server=127.0.0.1;user id=sa;password=sp1ttal;database=Scheduler"
+ "SchedulerReadModel": "server=127.0.0.1;user id=sa;password=Scotland;database=Scheduler"
}
}
diff --git a/TransactionProcessing.SchedulerService/TransactionProcessing.SchedulerService/quartz.config b/TransactionProcessing.SchedulerService/TransactionProcessing.SchedulerService/quartz.config
index 9248104..616509f 100644
--- a/TransactionProcessing.SchedulerService/TransactionProcessing.SchedulerService/quartz.config
+++ b/TransactionProcessing.SchedulerService/TransactionProcessing.SchedulerService/quartz.config
@@ -1,7 +1,6 @@
quartz.scheduler.instanceName = Txn Processing Scheduler
quartz.dataSource.JobStore.provider = SqlServer
-#quartz.dataSource.JobStore.connectionStringName = SchedulerReadModel
-quartz.dataSource.JobStore.connectionString = server=127.0.0.1;user id=sa;password=sp1ttal;database=Scheduler
+quartz.dataSource.JobStore.connectionStringName = SchedulerReadModel
quartz.jobStore.useProperties = true
quartz.jobStore.tablePrefix = QRTZ_
quartz.jobStore.type = Quartz.Impl.AdoJobStore.JobStoreTX, Quartz