using Sarand.Core.CodeTypes; using Sarand.Core.Dbas.Base; using Sarand.Core.Interfaces; using Sarand.Core.ItemOptions; using Sarand.Core.ReferenceData; using Sarand.Core.Security; using Sarand.Core.UpdateLog; using Sarand.OperationsMgr.Core.App; using Sarand.OperationsMgr.Web.App; using Sarand.Win.Dbas.Base; using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; using static Sarand.OperationsMgr.Web.App.SaOperationsMgrWebApp; namespace Sarand.OperationsMgr.Web.Consoles { //======================================================================= public class OpnConsoleHelper_Web : OpnConsoleHelper { //------------------------------------------------------------------- // Session console data. private class ConsoleData { public OpnSecurityConsole_Web SecurityConsole { get; set; } public OpnCodeTypeConsole_Web CodeTypeConsole { get; set; } public OpnReferenceDataConsole_Web ReferenceDataConsole { get; set; } public OpnItemOptionConsole_Web ItemOptionConsole { get; set; } public OpnInterfaceConsole_Web InterfaceConsole { get; set; } public OpnUpdateLogConsole_Web UpdateLogConsole { get; set; } } //------------------------------------------------------------------- // Data members. private readonly Dictionary sessionConsoleData = new Dictionary(); //------------------------------------------------------------------- // Construction. public OpnConsoleHelper_Web () { } //------------------------------------------------------------------- // Properties. private SaOperationsMgrWebApp App { get { return SaOperationsMgrWebApp.GetInstance(); } } //------------------------------------------------------------------- // Session context configuration. private SessionContextConfig GetSessionContextConfig (OpnSessionContext sessionContext) { return App.GetSessionContextConfig(sessionContext.Index); } private ConsoleData GetConsoleData (OpnSessionContext sessionContext) { // Add console data for this session if not already defined. if (!sessionConsoleData.ContainsKey(sessionContext.Index)) sessionConsoleData[sessionContext.Index] = new ConsoleData(); return sessionConsoleData[sessionContext.Index]; } //------------------------------------------------------------------- // Database. public override ISacsDatabase GetDatabase (OpnSessionContext sessionContext) { SessionContextConfig sessionContextConfig = GetSessionContextConfig(sessionContext); if (sessionContextConfig != null) return sessionContextConfig.Database; return null; } //------------------------------------------------------------------- // Security console. public override SaSecurityConsole GetSecurityConsole (OpnSessionContext sessionContext) { ConsoleData consoleData = GetConsoleData(sessionContext); if (consoleData.SecurityConsole == null) { consoleData.SecurityConsole = new OpnSecurityConsole_Web(sessionContext, GetDatabase(sessionContext) as SacsDatabase); consoleData.SecurityConsole.LogSecurityProfile = OpnGlobals.System.IsExtendedLogging(OpnSystem.ExtendedLogginOption.SecurityProfile); consoleData.SecurityConsole.RegisterSecurityRights(); } return consoleData.SecurityConsole; } //------------------------------------------------------------------- // Code Type console. public override SaCodeTypeConsole GetCodeTypeConsole (OpnSessionContext sessionContext) { ConsoleData consoleData = GetConsoleData(sessionContext); if (consoleData.CodeTypeConsole == null) { consoleData.CodeTypeConsole = new OpnCodeTypeConsole_Web(sessionContext, GetDatabase(sessionContext) as SacsDatabase); OpnSystem.RegisterCodeTypes(consoleData.CodeTypeConsole, sessionContext.Instance); } return consoleData.CodeTypeConsole; } //------------------------------------------------------------------- // Reference Data console. public override SaReferenceDataConsole GetReferenceDataConsole (OpnSessionContext sessionContext) { ConsoleData consoleData = GetConsoleData(sessionContext); if (consoleData.ReferenceDataConsole == null) { consoleData.ReferenceDataConsole = new OpnReferenceDataConsole_Web(sessionContext, GetDatabase(sessionContext) as SacsDatabase); } return consoleData.ReferenceDataConsole; } //------------------------------------------------------------------- // Item option console. public override SaItemOptionConsole GetItemOptionConsole (OpnSessionContext sessionContext) { ConsoleData consoleData = GetConsoleData(sessionContext); if (consoleData.ItemOptionConsole == null) { consoleData.ItemOptionConsole = new OpnItemOptionConsole_Web(sessionContext, GetDatabase(sessionContext) as SacsDatabase); } return consoleData.ItemOptionConsole; } //------------------------------------------------------------------- // Interface console. public override SaInterfaceConsole GetInterfaceConsole (OpnSessionContext sessionContext) { ConsoleData consoleData = GetConsoleData(sessionContext); if (consoleData.InterfaceConsole == null) { consoleData.InterfaceConsole = new OpnInterfaceConsole_Web(sessionContext, GetDatabase(sessionContext) as SacsDatabase); //consoleData.InterfaceConsole.RegisterInterfaces(sessionContext.Instance); } return consoleData.InterfaceConsole; } //------------------------------------------------------------------- // Update Log console. public override SaUpdateLogConsole GetUpdateLogConsole (OpnSessionContext sessionContext) { ConsoleData consoleData = GetConsoleData(sessionContext); if (consoleData.UpdateLogConsole == null) { consoleData.UpdateLogConsole = new OpnUpdateLogConsole_Web(sessionContext, GetDatabase(sessionContext) as SacsDatabase); } return consoleData.UpdateLogConsole; } //------------------------------------------------------------------- } //======================================================================= }