using Sarand.BusinessMgr.Net.Standard.Base.App; using Sarand.BusinessMgr.Net.Standard.Base.Core; using Sarand.BusinessMgr.Net.Standard.Base.Mgr; using Sarand.Net.Standard.Base.CodeTypes; using Sarand.Net.Standard.Base.Dbas; using Sarand.Net.Standard.Base.Procs; namespace Sarand.BusinessMgr.Net.Standard.Base.Procs { //======================================================================= public abstract class SbmReport_Base : SaReport_Base { //------------------------------------------------------------------- // Configuration. public new class Config : SaReport_Base.Config { protected Config(ISbmUserContext userContext) { UserContext = userContext; } public ISbmUserContext UserContext { get; } } //------------------------------------------------------------------- // Data members. private Config config; private SbmInternals internals = null; //------------------------------------------------------------------- // Construction. protected SbmReport_Base(Config config) : base(config) { this.config = config; } protected override void Dispose(bool disposing) { if (disposing) { if (internals != null) internals.Dispose(); } base.Dispose(disposing); } //------------------------------------------------------------------- // Properties. protected SbmInternals Internals { get { if (internals == null) internals = new SbmInternals(config.UserContext); return internals; } } protected SaCodeTypeConsole CodeTypeConsole { get { return Internals.CodeTypeConsole; } } protected SbmAccountMgr AccountMgr { get { return Internals.AccountMgr; } } protected SbmCommodityMgr CommodityMgr { get { return Internals.CommodityMgr; } } protected SbmTransactionMgr TransactionMgr { get { return Internals.TransactionMgr; } } protected DbUpdateInfo DbUpdateInfo { get { return Internals.DbUpdateInfo; } } //------------------------------------------------------------------- } //======================================================================= }