using Sarand.Net.Standard.Base.Dbas; using Saxonite.Net.Standard.Base.Consoles; using Saxonite.Net.Standard.Base.App; using System; using System.Collections.Generic; using System.Text; using Sarand.Net.Standard.Base.Core; namespace Saxonite.Net.Standard.Base.App { //======================================================================= public abstract class SaxApplication_Base : SacsDisposable { //------------------------------------------------------------------- // Protected construction. protected SaxApplication_Base() { App = this; } protected override void Dispose(bool disposing) { if (disposing) { App = null; } } //------------------------------------------------------------------- // Globals. public static SaxApplication_Base App { get; private set; } public abstract SaxSystem System { get; } public abstract SaxConsoleHelper ConsoleHelper { get; } // Database. public abstract ISacsDatabase GetDatabase(SaxSessionContext sessionContext, Sax.Database databaseType); public abstract IDatabaseInfo CreateDbInfo(SaxSessionContext sessionContext, Sax.Database databaseType); // Application instance. public abstract Sax.InstanceType InstanceType { get; } public bool IsLiveHost() { return InstanceType == Sax.InstanceType.Prod; } public bool IsTestHost() { return InstanceType != Sax.InstanceType.Prod; } public bool IsDevHost() { return InstanceType == Sax.InstanceType.Dev; } public abstract String EnvironmentName { get; } // Email configuration. public abstract SaxEmailConfig EmailConfig { get; } //------------------------------------------------------------------- } //======================================================================= }