using System; using System.Collections.Generic; using System.Data.Common; using System.Linq; using Sarand.Net.Standard.Base.App; using Sarand.Net.Standard.Base.Core; using Sarand.Net.Standard.Base.Bus; using Sarand.Net.Standard.Base.Dbas; using Sarand.Net.Standard.Base.Interfaces; using Sarand.Net.Standard.Dbas.Data; using Sarand.Net.Standard.Dbas.Interfaces.Internal; using Sarand.Net.Standard.Base.Utils; namespace Sarand.Net.Standard.Dbas.Interfaces { //======================================================================= public partial class SaInterfaceMgr_Dbas { //******************************************************************* // I n t e r f a c e P r o c e s s M e s s a g e s //******************************************************************* // Create Item. public override SaInterfaceProcessMessage CreateInterfaceProcessMessage(SysId interfaceProcessId) { ClearErrorState(); return new SaInterfaceProcessMessage_Dbas(null, interfaceProcessId, 0); } private SaInterfaceProcessMessage CreateInterfaceProcessMessage(SaInterfaceProcessMessage_Db dbInterfaceProcessMessage) { ClearErrorState(); SaInterfaceProcessMessage interfaceProcessMessage = new SaInterfaceProcessMessage_Dbas(new SysId(dbInterfaceProcessMessage._Id), new SysId(dbInterfaceProcessMessage._ProcessId), (ushort)dbInterfaceProcessMessage._Flags); PopulateFrom(dbInterfaceProcessMessage, interfaceProcessMessage); return interfaceProcessMessage; } private SaInterfaceProcessMessage CreateInterfaceProcessMessage(DbDataReader dataReader) { SaInterfaceProcessMessage_Db dbInterfaceProcessMessage = new SaInterfaceProcessMessage_Db(DbInfo); dbInterfaceProcessMessage.PopulateFrom(dataReader); return CreateInterfaceProcessMessage(dbInterfaceProcessMessage); } //------------------------------------------------------------------- // Item exists. public override bool InterfaceProcessMessageExistsById(SysId id) { ClearErrorState(); if (!SysId.IsValid(id)) return false; return GetInterfaceProcessMessageCount(SaInterfaceDbDfn.GetColumnNameQual(SaInterfaceDbDfn.ColumnIdx.SaInterfaceProcessMessage_Id, aliasInterfaceProcessMessage) + "=" + SysId.ToString(id)) == 1; } //------------------------------------------------------------------- // Get Item. public override SaInterfaceProcessMessage GetInterfaceProcessMessage(SaInterfaceProcessMessage.Params prm) { return GetInterfaceProcessMessage(GetInterfaceProcessMessageQueryFilter(prm).Concat(" AND ", "(", ")")); } private SaInterfaceProcessMessage GetInterfaceProcessMessage(String filter) { ClearErrorState(); if (GetInterfaceProcessMessageCount(filter) != 1) return null; SaInterfaceProcessMessage interfaceProcessMessage = null; // Query data. using (var dbConnection = Database.CreateConnection()) using (var dbCommand = dbConnection.CreateCommand()) { try { dbConnection.Open(); SaInterfaceProcessMessage_Db dbInterfaceProcessMessage = new SaInterfaceProcessMessage_Db(DbInfo); dbInterfaceProcessMessage.PopulateFrom(dbCommand, aliasInterfaceProcessMessage, filter); interfaceProcessMessage = CreateInterfaceProcessMessage(dbInterfaceProcessMessage); } catch (Exception exc) { SetErrorState(Msg_DatabaseQueryException); SaLogger.Warn($"{SysUtil.Fn}\n\tQuery: {dbCommand.CommandText}\n\t{ExceptionUtil.GetErrorStateMessage(exc)}"); } } return interfaceProcessMessage; } public override SaInterfaceProcessMessage GetInterfaceProcessMessageById(SysId id) { ClearErrorState(); if (!SysId.IsValid(id)) return null; return GetInterfaceProcessMessage("Id=" + SysId.ToString(id)); } //------------------------------------------------------------------- // Validate Interface ProcessMessage. public override bool IsValidInterfaceProcessMessageData(SaInterfaceProcessMessage.Data interfaceData, SaInterfaceProcessMessage.ErrField errField) { ClearErrorState(); if (!base.IsValidInterfaceProcessMessageData(interfaceData, errField)) return false; return true; } //------------------------------------------------------------------- // Insert Interface ProcessMessage. public override bool InsertInterfaceProcessMessage(SaInterfaceProcessMessage interfaceProcessMessage, DbUpdateInfo dbUpdateInfo) { ClearErrorState(); if (!IsValidInterfaceProcessMessage(interfaceProcessMessage)) return false; if (SysId.IsValid(interfaceProcessMessage.Id)) return SetErrorState(ErrorMessage.ValiditemId); using (var dbConnection = Database.CreateConnection()) using (var dbCommand = dbConnection.CreateCommand()) { try { dbConnection.Open(); SaInterfaceProcessMessage_Db dbInterfaceProcessMessage = new SaInterfaceProcessMessage_Db(DbInfo); PopulateTo(dbInterfaceProcessMessage, interfaceProcessMessage, dbUpdateInfo); if (SaInterfaceProcessMessage_Db.FieldsNonId.Contains("Id")) { // Generate next Id. dbInterfaceProcessMessage._Id = SysId.ToInt(Database.GetNextId(dbInterfaceProcessMessage.TableName, dbUpdateInfo)); } dbInterfaceProcessMessage.ExecuteInsertCommand(dbCommand); interfaceProcessMessage.Id = new SysId(dbInterfaceProcessMessage._Id); } catch (Exception exc) { SetErrorState(exc.Message); } } return OK; } //------------------------------------------------------------------- // Update Interface ProcessMessage. public override bool UpdateInterfaceProcessMessage(SaInterfaceProcessMessage interfaceProcessMessage, DbUpdateInfo dbUpdateInfo) { ClearErrorState(); if (!IsValidInterfaceProcessMessage(interfaceProcessMessage)) return false; if (!SysId.IsValid(interfaceProcessMessage.Id)) return SetErrorState(ErrorMessage.InvalidItemId); using (var dbConnection = Database.CreateConnection()) using (var dbCommand = dbConnection.CreateCommand()) { try { // Retrieve interface. dbConnection.Open(); SaInterfaceProcessMessage_Db dbInterfaceProcessMessage = new SaInterfaceProcessMessage_Db(DbInfo); dbInterfaceProcessMessage.PopulateFrom(dbCommand, aliasInterfaceProcessMessage, "Id=" + SysId.ToString(interfaceProcessMessage.Id)); // Update properties. PopulateTo(dbInterfaceProcessMessage, interfaceProcessMessage, dbUpdateInfo); dbInterfaceProcessMessage.ExecuteUpdateCommand(dbCommand); } catch (Exception exc) { SetErrorState(exc.Message); } } return OK; } //------------------------------------------------------------------- // Delete item. public override bool InterfaceProcessMessageCanBeDeleted(SaInterfaceProcessMessage interfaceProcessMessage) { ClearErrorState(); if (!base.InterfaceProcessMessageCanBeDeleted(interfaceProcessMessage)) return false; return true; } public override bool DeleteInterfaceProcessMessage(SaInterfaceProcessMessage interfaceProcessMessage, DbUpdateInfo dbUpdateInfo) { ClearErrorState(); if (!InterfaceProcessMessageCanBeDeleted(interfaceProcessMessage)) return false; using (var dbConnection = Database.CreateConnection()) using (var dbCommand = dbConnection.CreateCommand()) { try { // Retrieve item. dbConnection.Open(); SaInterfaceProcessMessage_Db dbInterfaceProcessMessage = new SaInterfaceProcessMessage_Db(DbInfo); dbInterfaceProcessMessage.PopulateFrom(dbCommand, aliasInterfaceProcessMessage, "Id=" + SysId.ToString(interfaceProcessMessage.Id)); // Delete item. dbCommand.CommandType = System.Data.CommandType.Text; dbCommand.CommandText = "DELETE FROM " + TableName_InterfaceProcessMessage + " WHERE Id=" + SysId.ToString(interfaceProcessMessage.Id) + ";"; dbCommand.ExecuteNonQuery(); } catch (Exception exc) { SetErrorState(exc.Message); } } return OK; } //------------------------------------------------------------------- // Copy data properties to and from database. private void PopulateTo(SaInterfaceProcessMessage_Db dbInterfaceProcessMessage, SaInterfaceProcessMessage interfaceProcessMessage, DbUpdateInfo dbUpdateInfo) { dbInterfaceProcessMessage._Id = interfaceProcessMessage.Id.ToInt(); dbInterfaceProcessMessage._ProcessId = SysId.ToInt(interfaceProcessMessage.InterfaceProcessId); dbInterfaceProcessMessage._MsgType = MessageLevels.GetCodeForType(interfaceProcessMessage.Level); dbInterfaceProcessMessage._Msg = interfaceProcessMessage.Message; dbInterfaceProcessMessage._FileName = interfaceProcessMessage.Filename; dbInterfaceProcessMessage._LineNumber = interfaceProcessMessage.LineNumber; dbInterfaceProcessMessage._ItemType = interfaceProcessMessage.ItemId.Type; dbInterfaceProcessMessage._ItemId = SysId.ToInt(interfaceProcessMessage.ItemId.Id); dbInterfaceProcessMessage._Status = SacsSystem.GetStatusCode(interfaceProcessMessage.Status); dbInterfaceProcessMessage._Flags = (short)interfaceProcessMessage.Flags; if (!SysId.IsValid(interfaceProcessMessage.Id)) { dbInterfaceProcessMessage._CreateOn = DateTime.Now; dbInterfaceProcessMessage._CreateBy = dbUpdateInfo.UserId.ToInt(); dbInterfaceProcessMessage._CreateHost = dbUpdateInfo.Host; } dbInterfaceProcessMessage._UpdateOn = DateTime.Now; dbInterfaceProcessMessage._UpdateBy = dbUpdateInfo.UserId.ToInt(); dbInterfaceProcessMessage._UpdateHost = dbUpdateInfo.Host; } private void PopulateFrom(SaInterfaceProcessMessage_Db dbInterfaceProcessMessage, SaInterfaceProcessMessage interfaceProcessMessage) { //interface.Id = new SysId(dbInterfaceProcessMessage._Id); //interfaceProcessMessage.InterfaceProcessId = new SysId(dbInterfaceProcessMessage._ProcessId); interfaceProcessMessage.Level = (SaMessageLevel)MessageLevels.GetTypeForCode(dbInterfaceProcessMessage._MsgType); // Legacy value for 'Warning'. if (interfaceProcessMessage.Level <= 0 && dbInterfaceProcessMessage._MsgType.EqualsCI(MessageTypeWarningAlt)) interfaceProcessMessage.Level = SaMessageLevel.Warning; interfaceProcessMessage.Message = dbInterfaceProcessMessage._Msg; interfaceProcessMessage.Filename = dbInterfaceProcessMessage._FileName; interfaceProcessMessage.LineNumber = dbInterfaceProcessMessage._LineNumber; interfaceProcessMessage.ItemId = new ItemId(dbInterfaceProcessMessage._ItemType, new SysId(dbInterfaceProcessMessage._ItemId)); interfaceProcessMessage.Status = SacsSystem.GetStatusForCode(dbInterfaceProcessMessage._Status); interfaceProcessMessage.SetCreateStamp(dbInterfaceProcessMessage._CreateOn, new SysId(dbInterfaceProcessMessage._CreateBy), dbInterfaceProcessMessage._CreateHost); interfaceProcessMessage.SetUpdateStamp(dbInterfaceProcessMessage._UpdateOn, new SysId(dbInterfaceProcessMessage._UpdateBy), dbInterfaceProcessMessage._UpdateHost); interfaceProcessMessage.AcceptChanges(); } //------------------------------------------------------------------- // Interface Process Message column definitions. private static readonly String aliasInterfaceProcessMessage = "aIntPrcMsg"; private void SetInterfaceProcessMessageColDfn (ColumnDfn col, String caption, int width, SaInterfaceDbDfn.ColumnIdx dbCol, ColumnAlignment align = ColumnAlignment.Default, DataValue.DataType dataType = DataValue.DataType.String, String alias = "", String prefix = "") { if (String.IsNullOrEmpty(alias) && SaInterfaceDbDfn.GetTableForColumn(dbCol) == SaInterfaceDbDfn.TableIdx.SaInterfaceProcessMessage) alias = aliasInterfaceProcessMessage; col.Set(caption, width, (int)dbCol, prefix + SaInterfaceDbDfn.GetColumnName(dbCol, false), SaInterfaceDbDfn.GetColumnNameQual(dbCol, alias), dataType, align); } public override ColumnDfn GetInterfaceProcessMessageColumnDfn(SaInterfaceProcessMessage.Column columnId, string caption = "", int width = 0) { ColumnDfn columnDfn = new ColumnDfn((int)columnId, caption, width); switch (columnId) { case SaInterfaceProcessMessage.Column.Pos: SetInterfaceProcessMessageColDfn(columnDfn, "Pos", 45, SaInterfaceDbDfn.ColumnIdx.Unknown, ColumnAlignment.Right); columnDfn.SortMode = ColumnDfn.ColumnSortMode.Off; columnDfn.ReadOnly = true; columnDfn.Resizable = false; break; case SaInterfaceProcessMessage.Column.Id: SetInterfaceProcessMessageColDfn(columnDfn, "Id", 60, SaInterfaceDbDfn.ColumnIdx.SaInterfaceProcessMessage_Id, ColumnAlignment.Right, DataValue.DataType.Long); columnDfn.ReadOnly = true; break; case SaInterfaceProcessMessage.Column.ProcessId: SetInterfaceProcessMessageColDfn(columnDfn, "Process #", 90, SaInterfaceDbDfn.ColumnIdx.SaInterfaceProcessMessage_ProcessId, ColumnAlignment.Right, DataValue.DataType.Long); break; case SaInterfaceProcessMessage.Column.Level: SetInterfaceProcessMessageColDfn(columnDfn, "Level", 60, SaInterfaceDbDfn.ColumnIdx.SaInterfaceProcessMessage_MsgType, ColumnAlignment.Center, DataValue.DataType.String); break; case SaInterfaceProcessMessage.Column.Level_Desc: SetInterfaceProcessMessageColDfn(columnDfn, "Level", 90, SaInterfaceDbDfn.ColumnIdx.SaInterfaceProcessMessage_MsgType, ColumnAlignment.Center, DataValue.DataType.String); break; case SaInterfaceProcessMessage.Column.Message: SetInterfaceProcessMessageColDfn(columnDfn, "Message", 200, SaInterfaceDbDfn.ColumnIdx.SaInterfaceProcessMessage_Msg); break; case SaInterfaceProcessMessage.Column.Filename: SetInterfaceProcessMessageColDfn(columnDfn, "Filename", 120, SaInterfaceDbDfn.ColumnIdx.SaInterfaceProcessMessage_FileName); break; case SaInterfaceProcessMessage.Column.LineNumber: SetInterfaceProcessMessageColDfn(columnDfn, "Line no", 80, SaInterfaceDbDfn.ColumnIdx.SaInterfaceProcessMessage_LineNumber, ColumnAlignment.Center, DataValue.DataType.Long); break; case SaInterfaceProcessMessage.Column.ItemType: SetInterfaceProcessMessageColDfn(columnDfn, "Item type", 70, SaInterfaceDbDfn.ColumnIdx.SaInterfaceProcessMessage_ItemType, ColumnAlignment.Center, DataValue.DataType.Long); break; case SaInterfaceProcessMessage.Column.ItemType_Desc: SetInterfaceProcessMessageColDfn(columnDfn, "Item type", 100, SaInterfaceDbDfn.ColumnIdx.SaInterfaceProcessMessage_ItemType, ColumnAlignment.Center, DataValue.DataType.String); break; case SaInterfaceProcessMessage.Column.ItemId: SetInterfaceProcessMessageColDfn(columnDfn, "Item #", 70, SaInterfaceDbDfn.ColumnIdx.SaInterfaceProcessMessage_ItemId, ColumnAlignment.Center, DataValue.DataType.Long); break; case SaInterfaceProcessMessage.Column.Item_Caption: SetInterfaceProcessMessageColDfn(columnDfn, "Item", 120, SaInterfaceDbDfn.ColumnIdx.SaInterfaceProcessMessage_ItemId, ColumnAlignment.Center, DataValue.DataType.String); break; // Common properties. case SaInterfaceProcessMessage.Column.Status: SetInterfaceProcessMessageColDfn(columnDfn, "Status", 80, SaInterfaceDbDfn.ColumnIdx.SaInterfaceProcessMessage_Status, ColumnAlignment.Center); break; case SaInterfaceProcessMessage.Column.Status_Desc: SetInterfaceProcessMessageColDfn(columnDfn, "Status", 90, SaInterfaceDbDfn.ColumnIdx.SaInterfaceProcessMessage_Status, ColumnAlignment.Center); break; case SaInterfaceProcessMessage.Column.Status_Ind: SetInterfaceProcessMessageColDfn(columnDfn, "Status", 80, SaInterfaceDbDfn.ColumnIdx.SaInterfaceProcessMessage_Status, ColumnAlignment.Center, DataValue.DataType.TriState); columnDfn.TriStateFormat = ColumnTriStateFormat.Lights; break; case SaInterfaceProcessMessage.Column.CreateOn_Date: SetInterfaceProcessMessageColDfn(columnDfn, "Created", 80, SaInterfaceDbDfn.ColumnIdx.SaInterfaceProcessMessage_CreateOn, ColumnAlignment.Center, DataValue.DataType.Date); columnDfn.ReadOnly = true; break; case SaInterfaceProcessMessage.Column.UpdateOn_Date: SetInterfaceProcessMessageColDfn(columnDfn, "Updated", 80, SaInterfaceDbDfn.ColumnIdx.SaInterfaceProcessMessage_UpdateOn, ColumnAlignment.Center, DataValue.DataType.Date); columnDfn.ReadOnly = true; break; } if (!String.IsNullOrEmpty(caption)) columnDfn.Caption = caption; if (width > 0) columnDfn.Width = width; return columnDfn; } //------------------------------------------------------------------- // Interface ProcessMessage query filter. public override List GetInterfaceProcessMessageQueryFilter(SaInterfaceProcessMessage.Params prm) { List filter = new List(); // Interface ProcessMessage Id. String colId = SaInterfaceDbDfn.GetColumnNameQual(SaInterfaceDbDfn.ColumnIdx.SaInterfaceProcessMessage_Id, aliasInterfaceProcessMessage); String includedIds = prm.IdsIncluded.Concat(","); if (!includedIds.IsEmpty()) filter.Add(colId + " IN (" + includedIds + ")"); String excludedIds = prm.IdsExcluded.Concat(","); if (!excludedIds.IsEmpty()) filter.Add(colId + " NOT IN (" + excludedIds + ")"); // Interface Process. String colProcessId = SaInterfaceDbDfn.GetColumnNameQual(SaInterfaceDbDfn.ColumnIdx.SaInterfaceProcessMessage_ProcessId, aliasInterfaceProcessMessage); if (SysId.IsValid(prm.InterfaceProcessId)) filter.Add(colProcessId + "=" + SysId.ToString(prm.InterfaceProcessId)); // Item ids. String colItemType = SaInterfaceDbDfn.GetColumnNameQual(SaInterfaceDbDfn.ColumnIdx.SaInterfaceProcessMessage_ItemType, aliasInterfaceProcessMessage); String colItemId = SaInterfaceDbDfn.GetColumnNameQual(SaInterfaceDbDfn.ColumnIdx.SaInterfaceProcessMessage_ItemId, aliasInterfaceProcessMessage); List filterItemIds = new List(); foreach (ItemId itemId in prm.ItemIdsIncluded) filter.Add(colItemType + "=" + itemId.Type.ToString() + " And " + colItemId + "=" + SysId.ToString(itemId.Id)); if (filterItemIds.Count > 0) filter.Add(filterItemIds.Concat(" Or ", "(", ")")); // Status. String colStatus = SaInterfaceDbDfn.GetColumnNameQual(SaInterfaceDbDfn.ColumnIdx.SaInterfaceProcessMessage_Status, aliasInterfaceProcessMessage); if (prm.StatusCat == SaInterfaceProcessMessage.StatusCat.CompletedOnly) filter.Add(colStatus + " In ('" + SacsSystem.GetStatusCode(SaStatus.Completed) + ")"); if (filter.Count < 1 && prm.IncludeDefaultFilter) filter.Add("1=1"); return filter; } // Interface ProcessMessage sort columns. public List GetInterfaceProcessMessageSortColumns(SaInterfaceProcessMessage.Params prm) { // Sort sequence: List sortColumnNames = new List(); foreach (var columnDfn in prm.SortColumns) { // Need to ensure correct alias used for InterfaceProcessMessage columns in case of conflict. String sortCol = String.Empty; if (SaInterfaceDbDfn.GetTableForColumn((SaInterfaceDbDfn.ColumnIdx)columnDfn.DbColumn) == SaInterfaceDbDfn.TableIdx.SaInterfaceProcessMessage) { sortCol = SaInterfaceDbDfn.GetColumnNameQual((SaInterfaceDbDfn.ColumnIdx)columnDfn.DbColumn, aliasInterfaceProcessMessage); } else { sortCol = columnDfn.DataName; if (!StringUtil.IsEmpty(columnDfn.SortDataName)) { sortCol = columnDfn.SortDataName; } } if (!sortCol.IsEmpty()) { DbOrderByNullMode orderByNullMode = DbOrderByNullMode.Default; // eSaOrderByDemoteNulls, eSaOrderByPromoteNulls sortColumnNames.Add(DbQuery.FormatForOrderBy(sortCol, columnDfn.SortAscending, orderByNullMode).Concat(", ")); } } sortColumnNames.RemoveBlanks(); if (sortColumnNames.IsEmpty()) { // Default sort columns: sortColumnNames.Add(SaInterfaceDbDfn.GetColumnNameQual(SaInterfaceDbDfn.ColumnIdx.SaInterfaceProcessMessage_ProcessId, aliasInterfaceProcessMessage) + " ASC"); sortColumnNames.Add(SaInterfaceDbDfn.GetColumnNameQual(SaInterfaceDbDfn.ColumnIdx.SaInterfaceProcessMessage_Id, aliasInterfaceProcessMessage) + " ASC"); } return sortColumnNames; } //------------------------------------------------------------------- // Interface ProcessMessage count. private long GetInterfaceProcessMessageCount(String filter) { ClearErrorState(); return Database.GetRowCount(TableName_InterfaceProcessMessage + " As " + aliasInterfaceProcessMessage, filter); } public override long GetInterfaceProcessMessageCount(SaInterfaceProcessMessage.Params prm) { ClearErrorState(); return GetInterfaceProcessMessageCount(GetInterfaceProcessMessageQueryFilter(prm).Concat(" AND ", "(", ")")); } //------------------------------------------------------------------- // Interface ProcessMessage list. public override List GetInterfaceProcessMessageList(SaInterfaceProcessMessage.Params prm) { ClearErrorState(); List interfaces = new List(); DbQuery qry = new DbQuery(Database.DbmsType); qry.Tables.Add(TableName_InterfaceProcessMessage, aliasInterfaceProcessMessage); SaInterfaceProcessMessage_Db dbInterfaceProcessMessage = new SaInterfaceProcessMessage_Db(DbInfo); qry.Columns.AddRange(dbInterfaceProcessMessage.ExistingColumnNames); qry.Filters.AddRange(GetInterfaceProcessMessageQueryFilter(prm)); qry.OrderBy.AddRange(GetInterfaceProcessMessageSortColumns(prm)); // Query data. using (var dbConnection = Database.CreateConnection()) using (var dbCommand = dbConnection.CreateCommand()) { try { dbConnection.Open(); dbCommand.CommandText = qry.BuildQuery(prm.ResultsPaging); using (DbDataReader dbDataReader = dbCommand.ExecuteReader()) { while (dbDataReader.Read()) interfaces.Add(CreateInterfaceProcessMessage(dbDataReader)); } } catch (Exception exc) { SetErrorState(Msg_DatabaseQueryException); SaLogger.Warn($"{SysUtil.Fn}\n\tQuery: {dbCommand.CommandText}\n\t{ExceptionUtil.GetErrorStateMessage(exc)}"); } } return interfaces; } //------------------------------------------------------------------- // Interface ProcessMessage query. public override DbResultSet ExecuteInterfaceProcessMessageQuery(List columns, SaInterfaceProcessMessage.Params prm) { ClearErrorState(); //--------------------------------------------------------------------- // Construct query. DbQuery query = new DbQuery(Database.DbmsType); query.Tables.Add(TableName_InterfaceProcessMessage, aliasInterfaceProcessMessage); // Add columns as defined in query list. if (columns.HasId(SaInterfaceProcessMessage.Column.Id)) query.Columns.Add(SaInterfaceDbDfn.GetColumnNameQual(SaInterfaceDbDfn.ColumnIdx.SaInterfaceProcessMessage_Id, aliasInterfaceProcessMessage)); if (columns.HasId(SaInterfaceProcessMessage.Column.ProcessId)) query.Columns.Add(SaInterfaceDbDfn.GetColumnNameQual(SaInterfaceDbDfn.ColumnIdx.SaInterfaceProcessMessage_ProcessId, aliasInterfaceProcessMessage)); if (columns.HasId(SaInterfaceProcessMessage.Column.Level) || columns.HasId(SaInterfaceProcessMessage.Column.Level_Desc)) query.Columns.Add(SaInterfaceDbDfn.GetColumnNameQual(SaInterfaceDbDfn.ColumnIdx.SaInterfaceProcessMessage_MsgType, aliasInterfaceProcessMessage)); if (columns.HasId(SaInterfaceProcessMessage.Column.Message)) query.Columns.Add(SaInterfaceDbDfn.GetColumnNameQual(SaInterfaceDbDfn.ColumnIdx.SaInterfaceProcessMessage_Msg, aliasInterfaceProcessMessage)); if (columns.HasId(SaInterfaceProcessMessage.Column.Filename)) query.Columns.Add(SaInterfaceDbDfn.GetColumnNameQual(SaInterfaceDbDfn.ColumnIdx.SaInterfaceProcessMessage_FileName, aliasInterfaceProcessMessage)); if (columns.HasId(SaInterfaceProcessMessage.Column.LineNumber)) query.Columns.Add(SaInterfaceDbDfn.GetColumnNameQual(SaInterfaceDbDfn.ColumnIdx.SaInterfaceProcessMessage_LineNumber, aliasInterfaceProcessMessage)); if (columns.HasId(SaInterfaceProcessMessage.Column.ItemType) || columns.HasId(SaInterfaceProcessMessage.Column.ItemType_Desc) || columns.HasId(SaInterfaceProcessMessage.Column.Item_Caption)) query.Columns.Add(SaInterfaceDbDfn.GetColumnNameQual(SaInterfaceDbDfn.ColumnIdx.SaInterfaceProcessMessage_ItemType, aliasInterfaceProcessMessage)); if (columns.HasId(SaInterfaceProcessMessage.Column.ItemId) || columns.HasId(SaInterfaceProcessMessage.Column.Item_Caption)) query.Columns.Add(SaInterfaceDbDfn.GetColumnNameQual(SaInterfaceDbDfn.ColumnIdx.SaInterfaceProcessMessage_ItemId, aliasInterfaceProcessMessage)); /* if (columns.HasId(SaInterfaceProcessMessage.Column.Notes)) query.Columns.Add(SaInterfaceDbDfn.GetColumnNameQual(SaInterfaceDbDfn.ColumnIdx.SaInterfaceProcessMessage_Notes, aliasInterfaceProcessMessage)); */ if (columns.HasId(SaInterfaceProcessMessage.Column.Status) || columns.HasId(SaInterfaceProcessMessage.Column.Status_Desc) || columns.HasId(SaInterfaceProcessMessage.Column.Status_Ind)) query.Columns.Add(SaInterfaceDbDfn.GetColumnNameQual(SaInterfaceDbDfn.ColumnIdx.SaInterfaceProcessMessage_Status, aliasInterfaceProcessMessage)); if (columns.HasId(SaInterfaceProcessMessage.Column.CreateOn_Date)) query.Columns.Add(SaInterfaceDbDfn.GetColumnNameQual(SaInterfaceDbDfn.ColumnIdx.SaInterfaceProcessMessage_CreateOn, aliasInterfaceProcessMessage)); if (columns.HasId(SaInterfaceProcessMessage.Column.UpdateOn_Date)) query.Columns.Add(SaInterfaceDbDfn.GetColumnNameQual(SaInterfaceDbDfn.ColumnIdx.SaInterfaceProcessMessage_UpdateOn, aliasInterfaceProcessMessage)); //--------------------------------------------------------------------- // Populate filter. query.Filters.AddRange(GetInterfaceProcessMessageQueryFilter(prm)); if (prm.IdsIncluded.Count != 1) { // Configure sort sequence. foreach (String sortColumn in GetInterfaceProcessMessageSortColumns(prm)) query.OrderBy.Add(sortColumn); } //--------------------------------------------------------------------- //return new DbResultSet_DataTableReader(Database, query.BuildQuery(prm.ResultsPaging)); return DbResultSet_DataReader.ExecuteQuery(Database, query.BuildQuery(prm.ResultsPaging)); } //------------------------------------------------------------------- } //======================================================================= }