Files
BusinessMgr-2019/SaBusinessMgrCoreWebControl/Control/Consoles/SbmCoreInstanceConsole_Control.cs
T

66 lines
2.5 KiB
C#

using Sarand.BusinessMgr.Net.Standard.Base.App;
using Sarand.BusinessMgr.Net.Standard.Base.Bus.Control;
using Sarand.BusinessMgr.Net.Standard.Dbas.Consoles;
using Sarand.BusinessMgr.Web.Control.App;
using Sarand.Net.Standard.Base.Bus;
namespace Sarand.BusinessMgr.Web.Control.Consoles
{
//=======================================================================
public class SbmCoreInstanceConsole_Control : SbmCoreInstanceConsole_Dbas
{
//-------------------------------------------------------------------
// Definitions.
//-------------------------------------------------------------------
// Data members.
private class DataMembers
{
public SysId OwnerId { get; set; }
public SysId RepositoryId { get; set; }
public SbmInternals Internals { get; set; }
}
private DataMembers mbr { get; }
//-------------------------------------------------------------------
// Construction.
public SbmCoreInstanceConsole_Control(SbmSessionData_Control sessionData_Control, SbmcRepository repository)
{
mbr = new DataMembers();
mbr.OwnerId = repository.OwnerId;
mbr.RepositoryId = repository.Id;
this.SessionData_Control = sessionData_Control;
// In case Repository definition has changed since Instance was registered with Application.
App_Control.RefreshInstanceSessionProperties(repository);
}
protected override void Dispose(bool disposing)
{
if (disposing)
{
if (mbr.Internals != null) mbr.Internals.Dispose();
}
base.Dispose(disposing);
}
//-------------------------------------------------------------------
// Properties.
private static SbmApplication_Control App_Control { get { return SbmApplication_Control.Instance; } }
private SbmSessionData_Control SessionData_Control { get; }
public override SbmInternals Internals { get { if (mbr.Internals == null) { mbr.Internals = CreateCoreInternals(); } return mbr.Internals; } }
//-------------------------------------------------------------------
// Utilities.
/// <summary>Core internals for accessing core managers etc.</summary>
protected SbmInternals CreateCoreInternals()
{
ushort sessionIndex = App_Control.GetCoreSessionIndexForControlRepository(mbr.RepositoryId);
SbmSessionContext sessionContext = App_Control.GetSessionContextByIndex(sessionIndex);
return new SbmInternals(sessionContext);
}
//-------------------------------------------------------------------
}
//=======================================================================
}