Session Console and Internals.

This commit is contained in:
Andy Howard
2025-01-16 13:19:58 +00:00
parent ee988b1f76
commit 61ecd59794
187 changed files with 4681 additions and 3647 deletions
@@ -25,6 +25,7 @@ using static Sarand.Net.Standard.Dbas.Base.SacsDatabaseConsole;
using Sarand.BusinessMgr.Net.Standard.Base.Bus.Control;
using Sarand.BusinessMgr.Net.Standard.Base.Mgr.Control;
using Sarand.Net.Standard.Base.Security;
using Sarand.BusinessMgr.Net.Standard.Dbas.App;
namespace Sarand.BusinessMgr.Web.Control.App
{
@@ -58,7 +59,7 @@ namespace Sarand.BusinessMgr.Web.Control.App
public SysId ControlRepositoryId { get; }
public HashSet<string> RepositoryContexts { get; } = new HashSet<string>();
public ISacsDatabase BusMgrDatabase { get; set; }
// Core Instance config.
// Instance config.
private SbmInstanceConfig instanceConfig = null;
public SbmInstanceConfig InstanceConfig
{
@@ -69,6 +70,17 @@ namespace Sarand.BusinessMgr.Web.Control.App
return instanceConfig;
}
}
// Instance data cache.
private SbmInstanceDataCache instanceDataCache = null;
public SbmInstanceDataCache InstanceDataCache
{
get
{
if (instanceDataCache == null)
instanceDataCache = new SbmInstanceDataCache_Dbas(SessionContext);
return instanceDataCache;
}
}
}
private readonly Dictionary<ushort, CoreInstanceContextData> coreInstances = new Dictionary<ushort, CoreInstanceContextData>();
@@ -164,6 +176,16 @@ namespace Sarand.BusinessMgr.Web.Control.App
{
return coreInstances.GetValue(sessionContext.Index, null)?.InstanceConfig;
}
// Instance data cache.
public override SbmInstanceDataCache GetInstanceDataCache(SbmSessionContext sessionContext)
{
return coreInstances.GetValue(sessionContext.Index, null)?.InstanceDataCache;
}
// Organisation configuration.
public override SbmOrganisationConfig GetOrganisationConfig(ISbmUserOrganisationContext userContext)
{
return new SbmOrganisationConfig_Dbas(userContext, GetInstanceDataCache(userContext.SessionContext));
}
// Email configuration.
public override SbmEmailConfig EmailConfig { get { return emailConfigs.Values.ToList().getConfigForSession(AppConfig); } }
@@ -171,17 +193,17 @@ namespace Sarand.BusinessMgr.Web.Control.App
// Consoles.
//-------------------------------------------------------------------
public override SaSecurityConsole CreateSecurityConsole(ISbmUserContext_Core userContext)
public override SaSecurityConsole CreateSecurityConsole(ISbmUserOrganisationContext userContext)
{
return new SbmSecurityConsole_Web(userContext);
}
public override SaReferenceDataConsole CreateReferenceDataConsole(ISbmUserContext_Core userContext)
public override SaReferenceDataConsole CreateReferenceDataConsole(ISbmUserOrganisationContext userContext)
{
return null;
}
public override SbmEmailConsole CreateEmailConsole(ISbmUserContext_Core userContext)
public override SbmEmailConsole CreateEmailConsole(ISbmUserOrganisationContext userContext)
{
return new SbmEmailConsole_Control(EmailConfig);
}