Files
Common-VS2019/SacsBusinessDbas/Dbas/Interfaces/SaInterfaceMgr_Dbas.cs
T

83 lines
4.3 KiB
C#

using System;
using System.Collections.Generic;
using Sarand.Net.Standard.Base.App;
using Sarand.Net.Standard.Base.Core;
using Sarand.Net.Standard.Base.Dbas;
using Sarand.Net.Standard.Base.Interfaces;
using Sarand.Net.Standard.Dbas.Base;
using Sarand.Net.Standard.Dbas.Data;
namespace Sarand.Net.Standard.Dbas.Interfaces
{
//=======================================================================
public partial class SaInterfaceMgr_Dbas : SaInterfaceMgr
{
//-------------------------------------------------------------------
// Data members.
//-------------------------------------------------------------------
// Static initialisation.
static SaInterfaceMgr_Dbas ()
{
}
//-------------------------------------------------------------------
// Construction.
internal SaInterfaceMgr_Dbas (SaInterfaceConsole_Dbas interfaceConsole) :
base(interfaceConsole)
{
Database = interfaceConsole.Database;
DbInfo = new DbDataItem.DatabaseInfo(interfaceConsole.Database);
// Verify Interface table names.
// NB Some databases omit the 'Sa' prefix.
if (!Database.TableExists(TableName_Interface) && !Database.TableExists(TableName_InterfaceDataItem) && !Database.TableExists(TableName_InterfaceProcess) && !Database.TableExists(TableName_InterfaceProcessDataItem) && !Database.TableExists(TableName_InterfaceProcessMessage))
{
if (Database.TableExists("Interface") && Database.TableExists("InterfaceDataItem") && Database.TableExists("InterfaceProcess") && Database.TableExists("InterfaceProcessDataItem") && Database.TableExists("InterfaceProcessMessage"))
{
TableName_Interface = "Interface";
TableName_InterfaceProcess = "InterfaceProcess";
TableName_InterfaceProcessMessage = "InterfaceProcessMessage";
TableName_InterfaceDataItem = "InterfaceDataItem";
TableName_InterfaceProcessDataItem = "InterfaceProcessDataItem";
SaLogger.Info(GetType().Name+".CTR Switching to Interface table names without 'Sa' prefix");
}
}
}
//-------------------------------------------------------------------
// Properties.
internal ISacsDatabase Database { get; }
private DbDataItem.DatabaseInfo DbInfo { get; }
public String TableName_Interface { get; } = SaInterfaceDbDfn.GetTableName(SaInterfaceDbDfn.TableIdx.SaInterface);
public String TableName_InterfaceProcess { get; } = SaInterfaceDbDfn.GetTableName(SaInterfaceDbDfn.TableIdx.SaInterfaceProcess);
public String TableName_InterfaceProcessMessage { get; } = SaInterfaceDbDfn.GetTableName(SaInterfaceDbDfn.TableIdx.SaInterfaceProcessMessage);
public String TableName_InterfaceDataItem { get; } = SaInterfaceDbDfn.GetTableName(SaInterfaceDbDfn.TableIdx.SaInterfaceDataItem);
public String TableName_InterfaceProcessDataItem { get; } = SaInterfaceDbDfn.GetTableName(SaInterfaceDbDfn.TableIdx.SaInterfaceProcessDataItem);
public override bool DatabaseIsValid { get { return (Database != null && Database.GetTableNames().Contains(TableName_Interface) && Database.GetTableNames().Contains(TableName_InterfaceProcess)); } }
public override bool CanUpdateDatabase { get { return DatabaseIsValid; } }
//-------------------------------------------------------------------
// Utilities.
public override bool ColumnExists (SaInterfaceDbDfn.ColumnIdx columnIdx)
{
SaInterfaceDbDfn.TableIdx tableIdx = SaInterfaceDbDfn.GetTableForColumn(columnIdx);
String tableName = SaInterfaceDbDfn.GetTableName(tableIdx, false);
switch (tableIdx)
{
// Ensure correct table name used - with/without 'Sa' prefix.
case SaInterfaceDbDfn.TableIdx.SaInterface: tableName = TableName_Interface; break;
case SaInterfaceDbDfn.TableIdx.SaInterfaceProcess: tableName = TableName_InterfaceProcess; break;
case SaInterfaceDbDfn.TableIdx.SaInterfaceProcessMessage: tableName = TableName_InterfaceProcessMessage; break;
case SaInterfaceDbDfn.TableIdx.SaInterfaceDataItem: tableName = TableName_InterfaceDataItem; break;
case SaInterfaceDbDfn.TableIdx.SaInterfaceProcessDataItem: tableName = TableName_InterfaceProcessDataItem; break;
}
String columnName = SaInterfaceDbDfn.GetColumnName(columnIdx, false);
return Database.ColumnExists(tableName, columnName);
}
//-------------------------------------------------------------------
}
//=======================================================================
}