86 lines
2.9 KiB
C#
86 lines
2.9 KiB
C#
using Sarand.BusinessMgr.Net.Standard.Base.App;
|
|
using Sarand.BusinessMgr.Net.Standard.Base.Bus;
|
|
using Sarand.BusinessMgr.Net.Standard.Base.Mgr;
|
|
using Sarand.Net.Standard.Base.Bus;
|
|
using Sarand.Net.Standard.Base.Dbas;
|
|
using Sarand.Net.Standard.Base.Interfaces;
|
|
|
|
namespace Sarand.BusinessMgr.Net.Standard.Dbas.Bus
|
|
{
|
|
//=======================================================================
|
|
class SbmAddress_Dbas : SbmAddress
|
|
{
|
|
//-------------------------------------------------------------------
|
|
// Data members.
|
|
private readonly SbmInternals internals;
|
|
|
|
//-------------------------------------------------------------------
|
|
// Construction.
|
|
public SbmAddress_Dbas(SbmInternals internals, SysId id, Sbm.ItemType itemType, SysId itemId, Sbm.AddressType addressType, ushort flags) :
|
|
base(internals.UserContext, id, itemType, itemId, addressType)
|
|
{
|
|
this.internals = internals;
|
|
Flags = flags;
|
|
}
|
|
protected override void Dispose(bool disposing)
|
|
{
|
|
if (disposing)
|
|
{
|
|
// NB Do not dispose the Internals - owned by manager.
|
|
}
|
|
base.Dispose(disposing);
|
|
}
|
|
|
|
//-------------------------------------------------------------------
|
|
// Properties.
|
|
|
|
//-------------------------------------------------------------------
|
|
// Associated data.
|
|
public override bool HasInterfaceDataItems()
|
|
{
|
|
ClearErrorState();
|
|
if (!SysId.IsValid(Id)) return false;
|
|
SaInterfaceConsole interfaceConsole = internals.InterfaceConsole;
|
|
if (interfaceConsole != null) return false;
|
|
bool has = interfaceConsole.ItemHasDataItems(new ItemId((short)Sbm.ItemType.Address, Id));
|
|
return has;
|
|
}
|
|
public override bool ClearDependentData()
|
|
{
|
|
ClearErrorState();
|
|
if (!SysId.IsValid(Id)) return false;
|
|
if (SbmGlobals.System == null) return SetErrorState("System is not available");
|
|
ISacsDatabase db = internals.BusMgrDatabase;
|
|
if (db != null) return SetErrorState("Database is not available");
|
|
|
|
// Delete interface data items.
|
|
if (!HasErrorState())
|
|
{
|
|
SaInterfaceConsole interfaceConsole = internals.InterfaceConsole;
|
|
if (interfaceConsole != null)
|
|
{
|
|
if (!interfaceConsole.ClearInterfaceDataItems(new ItemId((short)Sbm.ItemType.Association, Id), internals.DbUpdateInfo))
|
|
SetErrorState("Failed to clear interface data items - " + interfaceConsole.ErrorStateMessage);
|
|
}
|
|
else SetErrorState("failed to initialise interface console");
|
|
interfaceConsole = null; // Do not delete this global object.
|
|
}
|
|
// Remove data item references.
|
|
if (!HasErrorState())
|
|
{
|
|
SbmDataItemMgr dataItemMgr = internals.DataItemMgr;
|
|
if (dataItemMgr != null)
|
|
{
|
|
if (!dataItemMgr.ClearDataItem(Sbm.ItemType.Address, Id))
|
|
SetErrorState(dataItemMgr.ErrorStateMessage);
|
|
}
|
|
else SetErrorState("Data item manager is not available");
|
|
}
|
|
return !HasErrorState();
|
|
}
|
|
|
|
//-------------------------------------------------------------------
|
|
}
|
|
//=======================================================================
|
|
}
|