This commit is contained in:
2022-12-11 15:08:41 +00:00
parent 5f2a181baa
commit ea5e27a5b3
137 changed files with 1178 additions and 751 deletions
+27 -4
View File
@@ -1,4 +1,5 @@
using Microsoft.Extensions.Configuration;
using Sarand.Net.Standard.Base.App;
using Sarand.Net.Standard.Base.Core;
using Sarand.Net.Standard.Base.Utils;
using Saxonite.Net.Standard.Base.App;
@@ -17,7 +18,7 @@ namespace Saxonite.Net.Core.Web.Base.App
//---------------------------------------------------------------
// Construction.
public SaxAppConfig (String context, ConfigurationSection configSection, SaxAppConfig defaultConfig)
public SaxAppConfig(String context, ConfigurationSection configSection, SaxAppConfig defaultConfig)
{
Context = context;
populateDefaults(defaultConfig);
@@ -99,7 +100,7 @@ namespace Saxonite.Net.Core.Web.Base.App
Logging.RootFolder = StringUtil.OnEmpty(logging["RootFolder"], Logging.RootFolder);
}
// Database.
extractDatabaseConfig(CoreDatabase, configSection.GetSection("CoreDatabase"));
extractDatabasesConfig(Databases, configSection.GetSection("Databases"));
// Variants.
foreach (ConfigurationSection variantSection in configSection.GetSection("Variants").GetChildren())
{
@@ -121,12 +122,28 @@ namespace Saxonite.Net.Core.Web.Base.App
foreach (var addressBcc in emailSection.GetSection("AddressesBcc").GetChildren())
config.AddressesBcc.Add(StringUtil.TrimAll(addressBcc.Value));
}
private void extractDatabaseConfig(DatabaseConfig database, IConfigurationSection databaseSection)
private void extractDatabasesConfig(DatabasesConfig databases, IConfigurationSection databasesSection)
{
if (!databasesSection.Exists()) return;
// 'Database' section contains a separate named configuration for each database: 'Core', 'Support' etc.
foreach (var databaseSection in databasesSection.GetChildren())
extractDatabaseConfig(databases, databaseSection);
}
private void extractDatabaseConfig(DatabasesConfig databases, IConfigurationSection databaseSection)
{
if (!databaseSection.Exists()) return;
Sax.Database databaseType = EnumUtil.ParseEnum<Sax.Database>(databaseSection.Key);
if (databaseType <= 0)
{
SaLogger.Warn(GetType().Name + ".extractDatabaseConfig Unrecognised database: " + databaseSection.Key);
return;
}
// Extract database configuration.
DatabaseConfig database = new DatabaseConfig();
database.Location = StringUtil.OnEmpty(databaseSection["Location"], database.Location);
database.User = StringUtil.OnEmpty(databaseSection["User"], database.User);
database.Password = StringUtil.OnEmpty(databaseSection["Password"], database.Password);
databases.Databases.Add(databaseType, database);
}
//---------------------------------------------------------------
@@ -200,7 +217,13 @@ namespace Saxonite.Net.Core.Web.Base.App
public String User { get; internal set; }
public String Password { get; internal set; }
}
public DatabaseConfig CoreDatabase { get; } = new DatabaseConfig();
public class DatabasesConfig
{
public Dictionary<Sax.Database, DatabaseConfig> Databases { get; } = new Dictionary<Sax.Database, DatabaseConfig>();
public DatabaseConfig Core { get { return Databases.GetValue(Sax.Database.Core, new DatabaseConfig()); } }
public DatabaseConfig Support { get { return Databases.GetValue(Sax.Database.Support, new DatabaseConfig()); } }
}
public DatabasesConfig Databases { get; } = new DatabasesConfig();
// Documents.
public class DocumentsConfig
{