This commit is contained in:
Andy Howard
2024-11-19 09:47:00 +00:00
parent c5ee285e27
commit 8b872cc8f3
214 changed files with 7924 additions and 5519 deletions
@@ -19,6 +19,7 @@ using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Sarand.Net.Standard.Base.ReferenceData;
namespace Sarand.BusinessMgr.Web.Control.App
{
@@ -30,7 +31,7 @@ namespace Sarand.BusinessMgr.Web.Control.App
private bool generateDatabaseDefinitions_Control = false;
private bool generateDatabaseDefinitions_BusMgr = false;
private PropertySet propertySet;
private Dictionary<String, SbmAppConfig> appConfigs = new Dictionary<string, SbmAppConfig>();
private Dictionary<String, Net.Core.Web.App.SbmAppConfig> appConfigs = new Dictionary<string, Net.Core.Web.App.SbmAppConfig>();
private Dictionary<String, SbmEmailConfig> emailConfigs = new Dictionary<string, SbmEmailConfig>();
ushort sessionContextIdx_Control = 0;
// Singular databases.
@@ -71,7 +72,7 @@ namespace Sarand.BusinessMgr.Web.Control.App
//-------------------------------------------------------------------
// Properties.
// Application Configuration.
public override SbmAppConfig AppConfig { get { return appConfigs.Values.ToList().getConfigForApplication(); } }
public override Net.Core.Web.App.SbmAppConfig AppConfig { get { return appConfigs.Values.ToList().getConfigForApplication(); } }
// Session Configuration.
public override String SessionCookieName { get { return Sbm.Config.Control.Session.Cookie.Name; } }
public override List<ushort> GetSessionContextIdxs()
@@ -82,6 +83,7 @@ namespace Sarand.BusinessMgr.Web.Control.App
{
return sessionContexts.GetValue(index, null)?.SessionContext ?? null;
}
// Databases.
public override ISacsDatabase GetControlDatabase()
{
return controlDatabase;
@@ -98,10 +100,20 @@ namespace Sarand.BusinessMgr.Web.Control.App
{
return sessionContexts.GetValue(sessionContext.Index, null)?.BusMgrDatabase;
}
// Instance configuration.
public override SbmInstanceConfig GetInstanceConfig(SbmSessionContext sessionContext)
{
throw new NotSupportedException("InstanceConfig not supported in Control application.");
}
// Email configuration.
public override SbmEmailConfig EmailConfig { get { return emailConfigs.Values.ToList().getConfigForSession(AppConfig); } }
//-------------------------------------------------------------------
// Create Consoles.
public override SaReferenceDataConsole CreateReferenceDataConsole(ISbmUserContext_Core userContext)
{
return null;
}
public override SbmEmailConsole CreateEmailConsole(ISbmUserContext_Core userContext)
{
return new SbmEmailConsole_Control(EmailConfig);
@@ -177,24 +189,24 @@ namespace Sarand.BusinessMgr.Web.Control.App
}
// BusinessMgr database connections.
foreach (SbmAppConfig.DatabaseConfig dbConfig in AppConfig.BusMgrDatabases)
foreach (Net.Core.Web.App.SbmAppConfig.DatabaseConfig dbConfig in AppConfig.BusMgrDatabases)
{
odbcConfig = new SacsDatabaseConsole.OdbcConfig();
odbcConfig.location = dbConfig.Location;
odbcConfig.user = dbConfig.User;
odbcConfig.pword = dbConfig.Password;
SacsDatabase busMgrDatabase = SacsDatabaseConsole.OpenOdbcDatabase(odbcConfig);
SacsDatabase busMgrDatabase = SacsDatabaseConsole.OpenOdbcDatabase(odbcConfig);
if (busMgrDatabase.HasErrorState())
SaLogger.Warn($"{SysUtil.Fn} BusMgr Database: " + busMgrDatabase.DatabaseName + ". Initialisation error: " + busMgrDatabase.ErrorStateMessage);
SaLogger.Warn($"{SysUtil.Fn} BusMgr Database: " + busMgrDatabase.DatabaseName + ". Initialisation error: " + busMgrDatabase.ErrorStateMessage);
// Session context.
ushort sessionContextIdx = sessionContextIdx_Next++;
if (sessionContextIdx_Control < 1)
sessionContextIdx_Control = sessionContextIdx;
SessionContextData sessionContextData = new SessionContextData(new SbmSessionContext_Web(sessionContextIdx, Sbm.Application.WebControl));
sessionContextIdx_Control = sessionContextIdx;
SessionContextData sessionContextData = new SessionContextData(new SbmSessionContext_Web(sessionContextIdx, Sbm.Application.WebControl));
sessionContextData.DbIdentifiers.UnionWith(dbConfig.Identifiers);
sessionContextData.BusMgrDatabase = busMgrDatabase;
sessionContexts.Add(sessionContextData.SessionContext.Index, sessionContextData);
sessionContexts.Add(sessionContextData.SessionContext.Index, sessionContextData);
}
}
catch (Exception exc)