152 lines
5.9 KiB
C#
152 lines
5.9 KiB
C#
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<ushort, ConsoleData> sessionConsoleData = new Dictionary<ushort, ConsoleData>();
|
|
|
|
//-------------------------------------------------------------------
|
|
// 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;
|
|
}
|
|
|
|
//-------------------------------------------------------------------
|
|
}
|
|
//=======================================================================
|
|
}
|