Files
BusinessMgr-2019/SaBusMgrStandardBase/Base/App/SbmApplication.cs
T
2021-07-08 20:50:46 +01:00

88 lines
3.8 KiB
C#

using Sarand.BusinessMgr.Net.Standard.Base.Consoles;
using Sarand.Net.Standard.Base.CodeTypes;
using Sarand.Net.Standard.Base.Core;
using Sarand.Net.Standard.Base.Dbas;
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 System;
namespace Sarand.BusinessMgr.Net.Standard.Base.App
{
//=======================================================================
public abstract class SbmApplication : SacsDisposable
{
//-------------------------------------------------------------------
// Data members.
private readonly PropertySet properties;
//-------------------------------------------------------------------
// Construction.
protected SbmApplication(PropertySet properties)
{
this.properties = properties;
}
protected override void Dispose(bool disposing)
{
if (disposing)
{
}
}
//-------------------------------------------------------------------
// Application configuration.
[Obsolete("Deprecated - properties need to be session context specific.")]
public String GetPropertyValue(String section, String name)
{
return properties.GetPropertyValue(section, name);
}
//-------------------------------------------------------------------
// Properties.
public abstract SbmSystem System { get; }
// Database.
public abstract ISacsDatabase GetBusMgrDatabase(SbmSessionContext sessionContext);
public abstract IDatabaseInfo CreateBusMgrDbInfo(SbmSessionContext sessionContext);
public bool BusMgrTableExists(SbmSessionContext sessionContext, SbmDbDfn.TableIdx tableIdx)
{
ISacsDatabase db = GetBusMgrDatabase(sessionContext);
return db?.TableExists(SbmDbDfn.GetTableName(tableIdx)) ?? false;
}
public bool BusMgrColumnExists(SbmSessionContext sessionContext, SbmDbDfn.ColumnIdx columnIdx)
{
ISacsDatabase db = GetBusMgrDatabase(sessionContext);
return db?.ColumnExists(SbmDbDfn.GetTableName(SbmDbDfn.GetTableForColumn(columnIdx)), SbmDbDfn.GetColumnName(columnIdx, false)) ?? false;
}
// Application instance.
public abstract Sbm.InstanceType InstanceType { get; }
public bool IsLiveHost() { return InstanceType == Sbm.InstanceType.Production; }
public bool IsTestHost() { return InstanceType != Sbm.InstanceType.Production; }
public bool IsDevHost() { return InstanceType == Sbm.InstanceType.Dev; }
public abstract String EnvironmentName { get; }
// Email configuration.
public abstract SbmEmailConfig EmailConfig { get; }
//-------------------------------------------------------------------
// Create consoles.
public abstract SbmConfigConsole CreateConfigConsole(SbmSessionContext sessionContext);
public abstract SaDiaryConsole CreateDiaryConsole(SbmUserContext userContext);
public abstract SaSecurityConsole CreateSecurityConsole(SbmUserContext userContext);
public abstract SaCodeTypeConsole CreateCodeTypeConsole(SbmUserContext userContext);
public abstract SaReferenceDataConsole CreateReferenceDataConsole(SbmUserContext userContext);
public abstract SaItemDataConsole CreateItemDataConsole(SbmUserContext userContext);
public abstract SaItemDocConsole CreateItemDocConsole(SbmUserContext userContext);
public abstract SaItemOptionConsole CreateItemOptionConsole(SbmUserContext userContext);
public abstract SaInterfaceConsole CreateInterfaceConsole(SbmUserContext userContext);
public abstract SaUpdateLogConsole CreateUpdateLogConsole(SbmUserContext userContext);
public abstract SbmEmailConsole CreateEmailConsole(SbmUserContext userContext);
//-------------------------------------------------------------------
}
//=======================================================================
}