103 lines
4.4 KiB
C#
103 lines
4.4 KiB
C#
using Sarand.BusinessMgr.Net.Standard.Base.Consoles;
|
|
using Sarand.BusinessMgr.Net.Standard.Base.Core;
|
|
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;
|
|
using System.Collections.Generic;
|
|
|
|
namespace Sarand.BusinessMgr.Net.Standard.Base.App
|
|
{
|
|
//=======================================================================
|
|
public abstract class SbmApplication : SacsDisposable
|
|
{
|
|
//-------------------------------------------------------------------
|
|
// Data members.
|
|
private readonly PropertySet properties;
|
|
|
|
//-------------------------------------------------------------------
|
|
// Construction.
|
|
protected SbmApplication(PropertySet properties)
|
|
{
|
|
SbmGlobals.Application = this;
|
|
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; }
|
|
// Control & Template Databases.
|
|
public abstract ISacsDatabase GetControlDatabase();
|
|
public abstract ISacsDatabase GetTemplateDatabase();
|
|
// Business Mgr Database.
|
|
public abstract HashSet<string> GetRepositoryContexts(SbmSessionContext sessionContext);
|
|
public abstract ISacsDatabase GetBusMgrDatabase(SbmSessionContext sessionContext);
|
|
public IDatabaseInfo CreateBusMgrDbInfo(SbmSessionContext sessionContext)
|
|
{
|
|
return GetBusMgrDatabase(sessionContext).CreateDbInfo();
|
|
}
|
|
// Instance configuration.
|
|
public abstract SbmInstanceConfig GetInstanceConfig(SbmSessionContext sessionContext);
|
|
// Database utilities.
|
|
public IDatabaseInfo CreateDbInfo(ISacsDatabase db)
|
|
{
|
|
return db?.CreateDbInfo() ?? null;
|
|
}
|
|
public bool DbTableExists(ISacsDatabase db, SbmDbDfn.TableIdx tableIdx)
|
|
{
|
|
return db?.TableExists(SbmDbDfn.GetTableName(tableIdx)) ?? false;
|
|
}
|
|
public bool DbColumnExists(ISacsDatabase db, SbmDbDfn.ColumnIdx columnIdx)
|
|
{
|
|
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 SbmSessionConsole CreateSessionConsole(ISbmUserContext_Core userContext);
|
|
public abstract SaDiaryConsole CreateDiaryConsole(ISbmUserContext_Core userContext);
|
|
public abstract SaSecurityConsole CreateSecurityConsole(ISbmUserContext_Core userContext);
|
|
public abstract SaCodeTypeConsole CreateCodeTypeConsole(ISbmUserContext_Core userContext);
|
|
public abstract SaReferenceDataConsole CreateReferenceDataConsole(ISbmUserContext_Core userContext);
|
|
public abstract SaItemDataConsole CreateItemDataConsole(ISbmUserContext_Core userContext);
|
|
public abstract SaItemDocConsole CreateItemDocConsole(ISbmUserContext_Core userContext);
|
|
public abstract SaItemOptionConsole CreateItemOptionConsole(ISbmUserContext_Core userContext);
|
|
public abstract SaInterfaceConsole CreateInterfaceConsole(ISbmUserContext_Core userContext);
|
|
public abstract SaUpdateLogConsole CreateUpdateLogConsole(ISbmUserContext_Core userContext);
|
|
public abstract SbmEmailConsole CreateEmailConsole(ISbmUserContext_Core userContext);
|
|
|
|
//-------------------------------------------------------------------
|
|
}
|
|
//=======================================================================
|
|
}
|