Files
2020-03-06 16:07:06 +00:00

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;
}
//-------------------------------------------------------------------
}
//=======================================================================
}