149 lines
6.0 KiB
C#
149 lines
6.0 KiB
C#
using Sarand.BusinessMgr.Net.Standard.Base.Consoles;
|
|
using Sarand.BusinessMgr.Net.Standard.Base.Mgr;
|
|
using Sarand.BusinessMgr.Net.Standard.Base.Mgr.Control;
|
|
using Sarand.Net.Standard.Base.App;
|
|
using Sarand.Net.Standard.Base.CodeTypes;
|
|
using Sarand.Net.Standard.Base.Core;
|
|
using Sarand.Net.Standard.Base.Diary;
|
|
using Sarand.Net.Standard.Base.Interfaces;
|
|
using Sarand.Net.Standard.Base.ItemData;
|
|
using Sarand.Net.Standard.Base.ItemDocs;
|
|
using Sarand.Net.Standard.Base.ItemOptions;
|
|
using Sarand.Net.Standard.Base.ReferenceData;
|
|
using Sarand.Net.Standard.Base.Security;
|
|
using Sarand.Net.Standard.Base.UpdateLog;
|
|
using Sarand.Net.Standard.Base.Utils;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
|
|
namespace Sarand.BusinessMgr.Net.Standard.Base.App
|
|
{
|
|
//=======================================================================
|
|
public abstract partial class SbmSystem : SacsSystem
|
|
{
|
|
//-------------------------------------------------------------------
|
|
// Data members.
|
|
|
|
private static short assetCommodityTypeAllowed = -1;
|
|
|
|
//-------------------------------------------------------------------
|
|
// Extended logging options.
|
|
|
|
public enum ExtendedLogginOption
|
|
{
|
|
SecurityProfile,
|
|
DbQueryExecution,
|
|
Printing,
|
|
}
|
|
public static readonly String ExtendedLogging_SecurityProfile = "SecurityProfile";
|
|
public static readonly String ExtendedLogging_DbQueryExecution = "DbQueryExecution";
|
|
public static readonly String ExtendedLogging_Printing = "Printing";
|
|
private List<String> extendedLoggingOptions;
|
|
|
|
public object StringList { get; }
|
|
|
|
//-------------------------------------------------------------------
|
|
// Construction - use derived objects.
|
|
|
|
protected SbmSystem(PropertySet properties)
|
|
{
|
|
// Configure extended logging.
|
|
extendedLoggingOptions = StringListUtil.Split(properties.GetPropertyValue("Logging", "ExtendedLogging"));
|
|
}
|
|
|
|
//-------------------------------------------------------------------
|
|
// Application definitions.
|
|
|
|
public static Sbm.SessionConfig GetSessionConfigType(String consoleProperty)
|
|
{
|
|
if (consoleProperty.ContainsCI("Sarand"))
|
|
return Sbm.SessionConfig.Sarand;
|
|
if (consoleProperty.ContainsCI("MPE"))
|
|
return Sbm.SessionConfig.MPE;
|
|
if (consoleProperty.ContainsCI("BPE"))
|
|
return Sbm.SessionConfig.BPE;
|
|
if (consoleProperty.ContainsCI("Cadix") || consoleProperty.ContainsCI("CUL"))
|
|
return Sbm.SessionConfig.Cadix;
|
|
return Sbm.SessionConfig.Generic;
|
|
}
|
|
public static String GetCopyrightNotice(bool html = false)
|
|
{
|
|
return (html ? "©" : "(c)") + "2002- " + DateTime.Today.Year + "Sarand Ltd";
|
|
}
|
|
public static bool IsSysAdminSession()
|
|
{
|
|
// Dev mode.
|
|
if (IsDevHost()) return true;
|
|
// Production servers.
|
|
if (UserName.ContainsCI("Sarand"))
|
|
{
|
|
if (ComputerName.EqualsCI("SS-APP-S1")) return true;
|
|
if (ComputerName.EqualsCI("SS-APP-S2")) return true;
|
|
if (ComputerName.EqualsCI("SS-APP-LG1")) return true;
|
|
}
|
|
// Development.
|
|
if (ComputerName.ContainsCI("Sarand")) return true;
|
|
return false;
|
|
}
|
|
|
|
//-------------------------------------------------------------------
|
|
// Application codes.
|
|
|
|
public static List<TypeCodeDesc> GetSystemCodes(Sbm.ApplicationCode applicationCode)
|
|
{
|
|
List<TypeCodeDesc> codes = systemCodes.GetValueOrDefault(applicationCode);
|
|
if (codes == null)
|
|
SaLogger.Warn($"{SysUtil.Fn} Unrecognised system code type: {applicationCode}.");
|
|
return codes;
|
|
}
|
|
|
|
//-------------------------------------------------------------------
|
|
// Data Managers.
|
|
|
|
public abstract SbmAccountMgr CreateAccountMgr(SbmInternals internals);
|
|
public abstract SbmAssetMgr CreateAssetMgr(SbmInternals internals);
|
|
public abstract SbmCommodityMgr CreateCommodityMgr(SbmInternals internals);
|
|
public abstract SbmPriceMgr CreatePriceMgr(SbmInternals internals);
|
|
public abstract SbmDataItemMgr CreateDataItemMgr(SbmInternals internals);
|
|
public abstract SbmProcessMgr CreateProcessMgr(SbmInternals internals);
|
|
public abstract SbmStockMgr CreateStockMgr(SbmInternals internals);
|
|
public abstract SbmTransactionMgr CreateTransactionMgr(SbmInternals internals);
|
|
// Control.
|
|
public abstract SbmcAccountMgr CreateControlAccountMgr();
|
|
public abstract SbmcInstanceMgr CreateControlInstanceMgr();
|
|
public abstract SbmcItemMgr CreateControlItemMgr();
|
|
|
|
//-------------------------------------------------------------------
|
|
// Consoles.
|
|
|
|
public abstract SbmSessionConsole CreateSessionConsole(SbmInternals internals);
|
|
public abstract SaDiaryConsole CreateDiaryConsole(SbmInternals internals);
|
|
public abstract SaSecurityConsole CreateSecurityConsole(SbmInternals internals);
|
|
public abstract SaCodeTypeConsole CreateCodeTypeConsole(SbmInternals internals);
|
|
public abstract SaReferenceDataConsole CreateReferenceDataConsole(SbmInternals internals);
|
|
public abstract SaItemDataConsole CreateItemDataConsole(SbmInternals internals);
|
|
public abstract SaItemDocConsole CreateItemDocConsole(SbmInternals internals);
|
|
public abstract SaItemOptionConsole CreateItemOptionConsole(SbmInternals internals);
|
|
public abstract SaInterfaceConsole CreateInterfaceConsole(SbmInternals internals);
|
|
public abstract SaUpdateLogConsole CreateUpdateLogConsole(SbmInternals internals);
|
|
public abstract SbmEmailConsole CreateEmailConsole(SbmEmailConfig emailConfig);
|
|
|
|
//-------------------------------------------------------------------
|
|
// Application Properties.
|
|
|
|
public bool IsExtendedLogging(ExtendedLogginOption extendedLoggingOption)
|
|
{
|
|
if (extendedLoggingOptions == null) return false;
|
|
if (extendedLoggingOption == ExtendedLogginOption.SecurityProfile)
|
|
return extendedLoggingOptions.ContainsCI(ExtendedLogging_SecurityProfile);
|
|
if (extendedLoggingOption == ExtendedLogginOption.DbQueryExecution)
|
|
return extendedLoggingOptions.ContainsCI(ExtendedLogging_DbQueryExecution);
|
|
if (extendedLoggingOption == ExtendedLogginOption.Printing)
|
|
return extendedLoggingOptions.ContainsCI(ExtendedLogging_Printing);
|
|
return false;
|
|
}
|
|
|
|
//-------------------------------------------------------------------
|
|
}
|
|
//=======================================================================
|
|
} |