Files
BusinessMgr-2019/SaBusMgrStandardDbas/Dbas/Mgr/SbmAccountMgr_Dbas-SysParam.cs
T

520 lines
22 KiB
C#

using Sarand.BusinessMgr.Net.Standard.Base.App;
using Sarand.BusinessMgr.Net.Standard.Base.Bus;
using Sarand.BusinessMgr.Net.Standard.Dbas.Bus;
using Sarand.BusinessMgr.Net.Standard.Dbas.Internal;
using Sarand.BusinessMgr.Net.Standard.Dbas.UpdateLog;
using Sarand.Net.Standard.Base.App;
using Sarand.Net.Standard.Base.Bus;
using Sarand.Net.Standard.Base.Core;
using Sarand.Net.Standard.Base.Dbas;
using Sarand.Net.Standard.Base.Utils;
using Sarand.Net.Standard.Dbas.Data;
using System;
using System.Collections.Generic;
using System.Data.Common;
using System.Linq;
namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr
{
//=======================================================================
partial class SbmAccountMgr_Dbas
{
//*******************************************************************
// S y s P a r a m
//*******************************************************************
// Utilities.
private List<StringPair> GetLogProperties(SbmSysParam sysParam)
{
return new List<StringPair>()
{
new StringPair("Id",SysId.ToString(sysParam.Id)),
new StringPair("Status",sysParam.StatusCode)
};
}
//-------------------------------------------------------------------
// Create SysParam.
public override SbmSysParam CreateSysParam(Sbm.SysParamCategory sysparamCategory, String sysparamName)
{
return new SbmSysParam_Dbas(Internals, null, sysparamCategory, sysparamName, 0);
}
private SbmSysParam_Dbas CreateSysParam(SysParam_Db dbSysParam)
{
ClearErrorState();
SbmSysParam_Dbas sysparam = new SbmSysParam_Dbas(Internals, new SysId(dbSysParam._Id), (Sbm.SysParamCategory)dbSysParam._Cat, dbSysParam._Name, (ushort)dbSysParam._Flags);
PopulateFrom(dbSysParam, sysparam);
return sysparam;
}
//-------------------------------------------------------------------
// Get SysParam.
public override SbmSysParam GetSysParam(SbmSysParam.Params prm)
{
return GetSysParam(GetSysParamQueryFilter(prm).Concat(" AND ", "(", ")"));
}
private SbmSysParam GetSysParam(String filter)
{
ClearErrorState();
long count = GetSysParamCount(filter);
if (count == 0) return null;
if (count != 1)
{
SetErrorState("Multiple Sys Params found");
return null;
}
SbmSysParam sysParam = null;
// Query data.
using (var dbConnection = Database.CreateConnection())
using (var dbCommand = dbConnection.CreateCommand())
{
try
{
dbConnection.Open();
SysParam_Db dbSysParam = new SysParam_Db(DbInfo);
dbSysParam.PopulateFrom(dbCommand, aliasSysParam, filter);
sysParam = CreateSysParam(dbSysParam);
}
catch (Exception exc)
{
SetErrorState("Database query exception");
SaLogger.Warn($"{SysUtil.Fn}\n\tQuery: {dbCommand.CommandText}\n\t{ExceptionUtil.GetErrorStateMessage(exc)}");
}
}
return sysParam;
}
//-------------------------------------------------------------------
// Validate SysParam.
public override bool IsValidSysParamData(SbmSysParam.Data data, SbmSysParam.ErrField errField)
{
ClearErrorState();
if (!base.IsValidSysParamData(data, errField)) return false;
return true;
}
//-------------------------------------------------------------------
// Insert SysParam.
public override bool InsertSysParam(SbmSysParam sysparam, DbUpdateInfo dbUpdateInfo)
{
ClearErrorState();
if (!IsValidSysParam(sysparam)) return false;
if (SysId.IsValid(sysparam.Id)) return SetErrorState(ErrorMessage.ValiditemId);
using (var dbConnection = Database.CreateConnection())
using (var dbCommand = dbConnection.CreateCommand())
{
try
{
dbConnection.Open();
SysParam_Db dbSysParam = new SysParam_Db(DbInfo);
PopulateTo(dbSysParam, sysparam, dbUpdateInfo);
if (SysParam_Db.FieldsNonId.Contains("Id"))
{
// Generate next Id.
dbSysParam._Id = SysId.ToInt(Database.GetNextId("SysParam", dbUpdateInfo));
}
dbSysParam.ExecuteInsertCommand(dbCommand);
sysparam.Id = new SysId(dbSysParam._Id);
sysparam.Changed = false;
if (DebugMode) SaLogger.Debug($"{SysUtil.Fn} Inserted. {GetLogProperties(sysparam).Concat(": ").Concat("", "\n\t")}");
}
catch (Exception exc) { SetErrorState(exc.Message); }
}
return !HasErrorState();
}
//-------------------------------------------------------------------
// Update SysParam.
public override bool UpdateSysParam(SbmSysParam sysparam, DbUpdateInfo dbUpdateInfo)
{
ClearErrorState();
if (!IsValidSysParam(sysparam)) return false;
if (!SysId.IsValid(sysparam.Id)) return SetErrorState(ErrorMessage.InvalidItemId);
if (!sysparam.Changed)
{
if (DebugMode) SaLogger.Debug($"{SysUtil.Fn} Data not changed. {GetLogProperties(sysparam).Concat(": ").Concat("", "\n\t")}");
return true;
}
using (var dbConnection = Database.CreateConnection())
using (var dbCommand = dbConnection.CreateCommand())
{
try
{
// Retrieve SysParam.
dbConnection.Open();
SysParam_Db dbSysParam = new SysParam_Db(DbInfo);
dbSysParam.PopulateFrom(dbCommand, aliasSysParam, "Id=" + SysId.ToString(sysparam.Id));
SbmUpdateLogItemMonitor_SysParam updateLogMonitor = new SbmUpdateLogItemMonitor_SysParam(Internals, CreateSysParam(dbSysParam));
// Update properties.
PopulateTo(dbSysParam, sysparam, dbUpdateInfo);
dbSysParam.ExecuteUpdateCommand(dbCommand);
sysparam.Changed = false;
if (DebugMode) SaLogger.Debug($"{SysUtil.Fn} Updated. {GetLogProperties(sysparam).Concat(": ").Concat("", "\n\t")}");
// Record updates.
updateLogMonitor.RecordUpdatedValues(sysparam);
updateLogMonitor.LogUpdates();
}
catch (Exception exc) { SetErrorState(exc.Message); }
}
return !HasErrorState();
}
//-------------------------------------------------------------------
// Delete SysParam.
public override bool SysParamCanBeDeleted(SbmSysParam sysparam)
{
ClearErrorState();
if (!base.SysParamCanBeDeleted(sysparam)) return false;
return true;
}
public override bool DeleteSysParam(SbmSysParam sysparam, DbUpdateInfo dbUpdateInfo)
{
ClearErrorState();
if (!SysParamCanBeDeleted(sysparam)) return false;
using (var dbConnection = Database.CreateConnection())
using (var dbCommand = dbConnection.CreateCommand())
{
try
{
// Retrieve SysParam.
dbConnection.Open();
SysParam_Db dbSysParam = new SysParam_Db(DbInfo);
dbSysParam.PopulateFrom(dbCommand, aliasSysParam, "Id=" + sysparam.Id.ToString());
// Delete SysParam.
dbCommand.CommandType = System.Data.CommandType.Text;
dbCommand.CommandText = "DELETE FROM " + SbmDbDfn.GetTableName(SbmDbDfn.TableIdx.SysParam) + " WHERE Id=" + SysId.ToString(sysparam.Id) + ";";
dbCommand.ExecuteNonQuery();
sysparam.Changed = false;
if (DebugMode) SaLogger.Debug($"{SysUtil.Fn} Deleted. {GetLogProperties(sysparam).Concat(": ").Concat("", "\n\t")}");
}
catch (Exception exc) { SetErrorState(exc.Message); }
}
return !HasErrorState();
}
//-------------------------------------------------------------------
// Copy data properties to and from database.
private void PopulateTo(SysParam_Db dbSysParam, SbmSysParam sysparam, DbUpdateInfo dbUpdateInfo)
{
dbSysParam._Id = sysparam.Id.ToInt();
dbSysParam._Cat = (short)sysparam.Category;
dbSysParam._Name = sysparam.Name;
dbSysParam._Value = sysparam.Value;
dbSysParam._AffIdOwner = sysparam.AffiliateIdOwner.ToInt();
dbSysParam._AffIdTarget = sysparam.AffiliateIdTarget.ToInt();
dbSysParam._AssocId = sysparam.AssociationId.ToInt();
// Common properties.
//dbSysParam._Notes = sysparam.Notes;
dbSysParam._Status = SacsSystem.GetStatusCode(sysparam.Status);
dbSysParam._Flags = (short)sysparam.Flags;
if (!SysId.IsValid(sysparam.Id))
{
dbSysParam._CreateOn = DateTime.UtcNow;
dbSysParam._CreateBy = dbUpdateInfo.UserId.ToInt();
dbSysParam._CreateHost = dbUpdateInfo.Host;
}
dbSysParam._UpdateOn = DateTime.UtcNow;
dbSysParam._UpdateBy = dbUpdateInfo.UserId.ToInt();
dbSysParam._UpdateHost = dbUpdateInfo.Host;
}
private void PopulateFrom(SysParam_Db dbSysParam, SbmSysParam sysparam)
{
//sysparam.Id = new SysId(dbSysParam._Id);
sysparam.Category = (Sbm.SysParamCategory)dbSysParam._Cat;
sysparam.Name = dbSysParam._Name;
sysparam.Value = dbSysParam._Value;
sysparam.AffiliateIdOwner = new SysId(dbSysParam._AffIdOwner ?? 0);
sysparam.AffiliateIdTarget = new SysId(dbSysParam._AffIdTarget ?? 0);
sysparam.AssociationId = new SysId(dbSysParam._AssocId ?? 0);
// Common properties.
//sysparam.Notes = dbSysParam._Notes;
sysparam.Status = SacsSystem.GetStatusForCode(dbSysParam._Status);
sysparam.SetCreateStamp(dbSysParam._CreateOn ?? default(DateTime), new SysId(dbSysParam._CreateBy ?? 0), dbSysParam._CreateHost);
sysparam.SetUpdateStamp(dbSysParam._UpdateOn ?? default(DateTime), new SysId(dbSysParam._UpdateBy ?? 0), dbSysParam._UpdateHost);
sysparam.AcceptChanges();
}
//-------------------------------------------------------------------
// Column definitions.
private static readonly String aliasSysParam = "aSysPrm";
// Column definition population.
private void SetSysParamColDfn
(ColumnDfn col, String caption, int width, SbmDbDfn.ColumnIdx dbCol,
ColumnAlignment align = ColumnAlignment.Default, DataValue.DataType dataType = DataValue.DataType.String,
String alias = "", String prefix = "")
{
if (String.IsNullOrEmpty(alias) && SbmDbDfn.GetTableForColumn(dbCol) == SbmDbDfn.TableIdx.SysParam)
alias = aliasSysParam;
col.Set(caption, width, (int)dbCol, prefix + SbmDbDfn.GetColumnName(dbCol, false), SbmDbDfn.GetColumnNameQual(dbCol, alias), dataType, align);
if (dataType == DataValue.DataType.String && dbCol != SbmDbDfn.ColumnIdx.Unknown)
col.MaxLength = (int)SbmDbDfn.GetColTextLen(dbCol);
}
//-------------------------------------------------------------------
// Getting prmSysParam column definition.
public override ColumnDfn GetSysParamColumnDfn(SbmSysParam.Column columnId, string caption = "", int width = 0)
{
ColumnDfn columnDfn = new ColumnDfn((int)columnId, caption, width);
switch (columnId)
{
case SbmSysParam.Column.Pos:
SetSysParamColDfn(columnDfn, "Pos", 45, SbmDbDfn.ColumnIdx.Unknown, ColumnAlignment.Right);
columnDfn.SortMode = ColumnDfn.ColumnSortMode.Off;
columnDfn.ReadOnly = true;
columnDfn.Resizable = false;
break;
case SbmSysParam.Column.Id:
SetSysParamColDfn(columnDfn, "Id", 60, SbmDbDfn.ColumnIdx.SysParam_Id, ColumnAlignment.Right, DataValue.DataType.Long);
columnDfn.ReadOnly = true;
break;
// SysParam Properties.
case SbmSysParam.Column.Category:
SetSysParamColDfn(columnDfn, "SysParam Category", 80, SbmDbDfn.ColumnIdx.SysParam_Cat);
break;
case SbmSysParam.Column.Name:
SetSysParamColDfn(columnDfn, "Name", 100, SbmDbDfn.ColumnIdx.SysParam_Name);
break;
case SbmSysParam.Column.Value:
SetSysParamColDfn(columnDfn, "Value", 100, SbmDbDfn.ColumnIdx.SysParam_Value);
break;
// Derived properties.
case SbmSysParam.Column.AffIdOwner:
SetSysParamColDfn(columnDfn, "Affiliate Id Owner", 80, SbmDbDfn.ColumnIdx.SysParam_AffIdOwner, ColumnAlignment.Center, DataValue.DataType.Long);
columnDfn.ReadOnly = true;
break;
case SbmSysParam.Column.AffIdTarget:
SetSysParamColDfn(columnDfn, "Affiliate Id Target", 80, SbmDbDfn.ColumnIdx.SysParam_AffIdTarget, ColumnAlignment.Center, DataValue.DataType.Long);
columnDfn.ReadOnly = true;
break;
case SbmSysParam.Column.AssocId:
SetSysParamColDfn(columnDfn, "Assoc Id", 80, SbmDbDfn.ColumnIdx.SysParam_AssocId, ColumnAlignment.Center, DataValue.DataType.Long);
columnDfn.ReadOnly = true;
break;
// Common properties.
/*case SbmSysParam.Column.Notes:
SetSysParamColDfn(columnDfn, "Notes", 240, SbmDbDfn.ColumnIdx.SysParam_Notes);
break;*/
case SbmSysParam.Column.Status:
SetSysParamColDfn(columnDfn, "Status", 50, SbmDbDfn.ColumnIdx.SysParam_Status, ColumnAlignment.Center);
break;
case SbmSysParam.Column.Status_Desc:
SetSysParamColDfn(columnDfn, "Status", 50, SbmDbDfn.ColumnIdx.SysParam_Status, ColumnAlignment.Center);
break;
case SbmSysParam.Column.Status_Ind:
SetSysParamColDfn(columnDfn, "Status", 50, SbmDbDfn.ColumnIdx.SysParam_Status, ColumnAlignment.Center, DataValue.DataType.TriState);
columnDfn.TriStateFormat = ColumnTriStateFormat.Lights;
break;
case SbmSysParam.Column.CreateOn_Date:
SetSysParamColDfn(columnDfn, "Created", 65, SbmDbDfn.ColumnIdx.SysParam_CreateOn, ColumnAlignment.Center, DataValue.DataType.Date);
columnDfn.ReadOnly = true;
break;
case SbmSysParam.Column.UpdateOn_Date:
SetSysParamColDfn(columnDfn, "Updated", 65, SbmDbDfn.ColumnIdx.SysParam_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;
}
//-------------------------------------------------------------------
// SysParam query filter.
public override List<string> GetSysParamQueryFilter(SbmSysParam.Params prm)
{
List<String> filter = new List<String>();
// Param Id.
String colSysParam_Id = SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.SysParam_Id, aliasSysParam);
if (prm.IdsIncluded.HasValidIds())
filter.Add($"{colSysParam_Id} IN ({prm.IdsIncluded.Concat(",")})");
if (prm.IdsExcluded.HasValidIds())
filter.Add($"{colSysParam_Id} NOT IN ({prm.IdsExcluded.Concat(",")})");
// Category.
String colSysParam_Cat = SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.SysParam_Cat, aliasSysParam);
if (prm.Category > 0)
filter.Add($"{colSysParam_Cat}={(int)prm.Category}");
// Name.
String colSysParam_Name = SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.SysParam_Name, aliasSysParam);
if (!StringUtil.IsEmpty(prm.Name))
filter.Add($"{colSysParam_Name}='{DbQuery.FormatForCondition(prm.Name)}'");
else if (!StringUtil.IsEmpty(prm.NamePartial))
filter.Add($"{colSysParam_Name} LIKE '%{DbQuery.FormatForLike(prm.NamePartial)}%'");
// Affiliate Owner Id.
String colSysParam_AffIdOwner = SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.SysParam_AffIdOwner, aliasSysParam);
if (SysId.IsValid(prm.AffIdOwner))
filter.Add($"{colSysParam_AffIdOwner}={SysId.ToLong(prm.AffIdOwner)}");
// Affiliate Target Id.
String colSysParam_AffIdTarget = SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.SysParam_AffIdTarget, aliasSysParam);
if (SysId.IsValid(prm.AssocId))
filter.Add($"{colSysParam_AffIdTarget}={SysId.ToLong(prm.AssocId)}");
// Association Id.
String colSysParam_AssocId = SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.SysParam_AssocId, aliasSysParam);
if (SysId.IsValid(prm.AssocId))
filter.Add($"{colSysParam_AssocId}={SysId.ToLong(prm.AssocId)}");
// Common Properties
/* Notes.
String colSysParam_Notes = SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.SysParam_Notes, aliasSysParam);
if (!StringUtil.IsEmpty(prm.NotesPartial))
filter.Add(colSysParam_Notes + " LIKE '%" + DbQuery.FormatForLike(prm.NotesPartial) + "%'");
// Status.
String colSysParam_Status = SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.SysParam_Status, aliasSysParam);
if (prm.StatusCat == SbmSysParam.StatusCat.ActiveOnly)
filter.Add(colSysParam_Status + " = '" + StatusActive + "'");*/
if (filter.Count < 1 && prm.IncludeDefaultFilter) filter.Add("1=1");
return filter;
}
// SysParam sort columns.
public List<String> GetSysParamSortColumns(SbmSysParam.Params prm)
{
// Sort sequence:
List<String> sortColumnNames = new List<String>();
foreach (var columnDfn in prm.SortColumns)
{
// Need to ensure correct alias used for SysParam columns in case of conflict.
String sortCol = String.Empty;
if (SbmDbDfn.GetTableForColumn((SbmDbDfn.ColumnIdx)columnDfn.DbColumn) == SbmDbDfn.TableIdx.SysParam)
{
sortCol = SbmDbDfn.GetColumnNameQual((SbmDbDfn.ColumnIdx)columnDfn.DbColumn, aliasSysParam);
}
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(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.SysParam_AffIdOwner, aliasSysParam) + " ASC");
}
return sortColumnNames;
}
//-------------------------------------------------------------------
// SysParam count.
private long GetSysParamCount(String filter)
{
ClearErrorState();
return Database.GetRowCount(SbmDbDfn.GetTableName(SbmDbDfn.TableIdx.SysParam) + " As " + aliasSysParam, filter);
}
public override long GetSysParamCount(SbmSysParam.Params prm)
{
ClearErrorState();
return GetSysParamCount(GetSysParamQueryFilter(prm).Concat(" AND ", "(", ")"));
}
//-------------------------------------------------------------------
// SysParam list.
public override List<SbmSysParam> GetSysParamList(SbmSysParam.Params prm)
{
ClearErrorState();
List<SbmSysParam> sysParams = new List<SbmSysParam>();
DbQuery qry = new DbQuery(Database.DbmsType);
qry.Tables.Add(SbmDbDfn.GetTableName(SbmDbDfn.TableIdx.SysParam), aliasSysParam);
SysParam_Db dbSysParam = new SysParam_Db(DbInfo);
qry.Columns.AddRange(dbSysParam.ExistingColumnNames);
qry.Filters.AddRange(GetSysParamQueryFilter(prm));
qry.OrderBy.AddRange(GetSysParamSortColumns(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())
{
dbSysParam = new SysParam_Db(DbInfo);
dbSysParam.PopulateFrom(dbDataReader);
sysParams.Add(CreateSysParam(dbSysParam));
}
}
}
catch (Exception exc)
{
SetErrorState("Database query exception");
SaLogger.Warn($"{SysUtil.Fn}\n\tQuery: {dbCommand.CommandText}\n\t{ExceptionUtil.GetErrorStateMessage(exc)}");
}
}
return sysParams;
}
//-------------------------------------------------------------------
// SysParam query execution.
public override DbResultSet ExecuteSysParamQuery(List<ColumnDfn> columns, SbmSysParam.Params prm)
{
ClearErrorState();
//---------------------------------------------------------------------
// Construct query.
DbQuery query = new DbQuery(Database.DbmsType);
query.Tables.Add(SbmDbDfn.GetTableName(SbmDbDfn.TableIdx.SysParam), aliasSysParam);
// SysParam Properties - add columns as defined in query list.
if (columns.HasId((int)SbmSysParam.Column.Id))
query.Columns.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.SysParam_Id, aliasSysParam));
if (columns.HasId((int)SbmSysParam.Column.Category))
query.Columns.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.SysParam_Cat, aliasSysParam));
if (columns.HasId((int)SbmSysParam.Column.Name))
query.Columns.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.SysParam_Name, aliasSysParam));
if (columns.HasId((int)SbmSysParam.Column.Value))
query.Columns.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.SysParam_Value, aliasSysParam));
if (columns.HasId((int)SbmSysParam.Column.AffIdOwner))
query.Columns.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.SysParam_AffIdOwner, aliasSysParam));
if (columns.HasId((int)SbmSysParam.Column.AffIdTarget))
query.Columns.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.SysParam_AffIdTarget, aliasSysParam));
if (columns.HasId((int)SbmSysParam.Column.AssocId))
query.Columns.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.SysParam_AssocId, aliasSysParam));
// Common Properties
/*if (columns.HasId((int)SbmSysParam.Column.Notes))
query.Columns.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.SysParam_Notes, aliasSysParam));*/
if (columns.HasId((int)SbmSysParam.Column.Status) || columns.HasId((int)SbmSysParam.Column.Status_Desc) || columns.HasId((int)SbmSysParam.Column.Status_Ind))
query.Columns.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.SysParam_Status, aliasSysParam));
if (columns.HasId((int)SbmSysParam.Column.CreateOn_Date))
query.Columns.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.SysParam_CreateOn, aliasSysParam));
if (columns.HasId((int)SbmSysParam.Column.UpdateOn_Date))
query.Columns.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.SysParam_UpdateOn, aliasSysParam));
//---------------------------------------------------------------------
// Populate filter.
query.Filters.AddRange(GetSysParamQueryFilter(prm));
if (prm.IdsIncluded.Count != 1)
{
// Configure sort sequence.
foreach (String sortColumn in GetSysParamSortColumns(prm))
query.OrderBy.Add(sortColumn);
}
//---------------------------------------------------------------------
//return new DbResultSet_DataTableReader(Database, query.BuildQuery());
return DbResultSet_DataReader.ExecuteQuery(Database, query.BuildQuery(prm.ResultsPaging));
}
//-------------------------------------------------------------------
}
//=======================================================================
}