BusinessMgr
This commit is contained in:
@@ -20,13 +20,13 @@ namespace Sarand.Net.Standard.Dbas.CodeTypes
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Static initialisation.
|
||||
static SaCodeTypeConsole_Dbas ()
|
||||
static SaCodeTypeConsole_Dbas()
|
||||
{
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Construction.
|
||||
protected SaCodeTypeConsole_Dbas (ISacsDatabase database)
|
||||
protected SaCodeTypeConsole_Dbas(ISacsDatabase database)
|
||||
{
|
||||
Database = database;
|
||||
codeTypeMgr = new SaCodeTypeMgr_Dbas(this);
|
||||
@@ -41,7 +41,7 @@ namespace Sarand.Net.Standard.Dbas.CodeTypes
|
||||
//*******************************************************************
|
||||
// C o d e T y p e D e f i n i t i o n s
|
||||
//*******************************************************************
|
||||
public override SaCodeTypeDfn GetCodeTypeDefinition (SysId codeTypeId)
|
||||
public override SaCodeTypeDfn GetCodeTypeDefinition(SysId codeTypeId)
|
||||
{
|
||||
ClearErrorState();
|
||||
SaCodeType codeType = codeTypeMgr.GetCodeTypeById(codeTypeId);
|
||||
@@ -55,68 +55,137 @@ namespace Sarand.Net.Standard.Dbas.CodeTypes
|
||||
//*******************************************************************
|
||||
// C o d e T y p e s
|
||||
//*******************************************************************
|
||||
public override bool CodeTypeExists (String codeTypeCode)
|
||||
|
||||
// Create Code Type.
|
||||
public override SaCodeType CreateCodeType(String code)
|
||||
{
|
||||
ClearErrorState();
|
||||
SaCodeType.Params prmCodeType = new SaCodeType.Params();
|
||||
prmCodeType.Code = codeTypeCode;
|
||||
prmCodeType.StatusCat = SaCodeType.StatusCat.Any;
|
||||
return (codeTypeMgr.GetCodeTypeCount(prmCodeType) > 0);
|
||||
return codeTypeMgr.CreateCodeType(code);
|
||||
}
|
||||
public override String GetDescForCodeType (String codeTypeCode)
|
||||
|
||||
// Code Type exists.
|
||||
public override bool CodeTypeExistsById(SysId codeTypeId)
|
||||
{
|
||||
ClearErrorState();
|
||||
SaCodeType codeTypeData = codeTypeMgr.GetCodeTypeByCode(codeTypeCode);
|
||||
if (codeTypeData != null)
|
||||
return codeTypeData.Description;
|
||||
return base.GetDescForCodeType(codeTypeCode);
|
||||
bool exists = codeTypeMgr.CodeTypeExistsById(codeTypeId);
|
||||
SetErrorState(codeTypeMgr.ErrorStateMessage);
|
||||
return exists;
|
||||
}
|
||||
public override int GetCodeTypeCount (SaCodeType.Params prmCodeType)
|
||||
public override bool CodeTypeExistsByCode(String codeTypeCode)
|
||||
{
|
||||
ClearErrorState();
|
||||
bool exists = codeTypeMgr.CodeTypeExistsByCode(codeTypeCode);
|
||||
SetErrorState(codeTypeMgr.ErrorStateMessage);
|
||||
return exists;
|
||||
}
|
||||
|
||||
// Code Type count.
|
||||
public override int GetCodeTypeCount(SaCodeType.Params prmCodeType)
|
||||
{
|
||||
ClearErrorState();
|
||||
return (int)codeTypeMgr.GetCodeTypeCount(prmCodeType);
|
||||
}
|
||||
public override SaCodeType GetCodeType (SaCodeType.Params prmCodeType)
|
||||
|
||||
// Get Code Type.
|
||||
public override SaCodeType GetCodeTypeById(SysId codeTypeId)
|
||||
{
|
||||
ClearErrorState();
|
||||
return codeTypeMgr.GetCodeType(prmCodeType);
|
||||
SaCodeType codeType = codeTypeMgr.GetCodeTypeById(codeTypeId);
|
||||
SetErrorState(codeTypeMgr.ErrorStateMessage);
|
||||
return codeType;
|
||||
}
|
||||
public override List<SaCodeType> GetCodeTypeList (SaCodeType.Params prmCodeType)
|
||||
public override SaCodeType GetCodeTypeByCode(String codeTypeCode)
|
||||
{
|
||||
ClearErrorState();
|
||||
SaCodeType codeType = codeTypeMgr.GetCodeTypeByCode(codeTypeCode);
|
||||
SetErrorState(codeTypeMgr.ErrorStateMessage);
|
||||
return codeType;
|
||||
}
|
||||
public override SaCodeType GetCodeType(SaCodeType.Params prmCodeType)
|
||||
{
|
||||
ClearErrorState();
|
||||
SaCodeType codeType = codeTypeMgr.GetCodeType(prmCodeType);
|
||||
SetErrorState(codeTypeMgr.ErrorStateMessage);
|
||||
return codeType;
|
||||
}
|
||||
|
||||
// Get name for Code Type.
|
||||
public override String GetNameForCodeType(String codeTypeCode)
|
||||
{
|
||||
ClearErrorState();
|
||||
SaCodeType codeTypeData = codeTypeMgr.GetCodeTypeByCode(codeTypeCode);
|
||||
if (codeTypeData != null)
|
||||
return codeTypeData.Name;
|
||||
return base.GetNameForCodeType(codeTypeCode);
|
||||
}
|
||||
|
||||
// Get Code Types.
|
||||
public override List<SaCodeType> GetCodeTypeList(SaCodeType.Params prmCodeType)
|
||||
{
|
||||
ClearErrorState();
|
||||
return codeTypeMgr.GetCodeTypeList(prmCodeType);
|
||||
}
|
||||
public override ColumnDfn GetCodeTypeColumnDfn (SaCodeType.Column columnId, String caption = "", int width = 0)
|
||||
|
||||
// Code Type columns.
|
||||
public override ColumnDfn GetCodeTypeColumnDfn(SaCodeType.Column columnId, String caption = "", int width = 0)
|
||||
{
|
||||
ClearErrorState();
|
||||
return codeTypeMgr.GetCodeTypeColumnDfn(columnId, caption, width);
|
||||
}
|
||||
public override DbResultSet ExecuteCodeTypeQuery (List<ColumnDfn> columns, SaCodeType.Params prm)
|
||||
|
||||
// Execute Code Type query.
|
||||
public override DbResultSet ExecuteCodeTypeQuery(List<ColumnDfn> columns, SaCodeType.Params prm)
|
||||
{
|
||||
ClearErrorState();
|
||||
return codeTypeMgr.ExecuteCodeTypeQuery(columns, prm);
|
||||
}
|
||||
public override DataValue GetCodeTypeDataValue (ColumnDfn column, NamedValue.Map values)
|
||||
|
||||
// Get Code Type data value.
|
||||
public override DataValue GetCodeTypeDataValue(ColumnDfn column, NamedValue.Map values)
|
||||
{
|
||||
ClearErrorState();
|
||||
return codeTypeMgr.GetCodeTypeDataValue(column, values);
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Code Type updates.
|
||||
public override bool InsertCodeType(SaCodeType codeType, DbUpdateInfo dbUpdateInfo)
|
||||
{
|
||||
ClearErrorState();
|
||||
bool result = codeTypeMgr.InsertCodeType(codeType, dbUpdateInfo);
|
||||
SetErrorState(codeTypeMgr.ErrorStateMessage);
|
||||
return result;
|
||||
}
|
||||
public override bool UpdateCodeType(SaCodeType codeType, DbUpdateInfo dbUpdateInfo)
|
||||
{
|
||||
ClearErrorState();
|
||||
bool result = codeTypeMgr.UpdateCodeType(codeType, dbUpdateInfo);
|
||||
SetErrorState(codeTypeMgr.ErrorStateMessage);
|
||||
return result;
|
||||
}
|
||||
public override bool DeleteCodeType(SaCodeType codeType, DbUpdateInfo dbUpdateInfo)
|
||||
{
|
||||
ClearErrorState();
|
||||
bool result = codeTypeMgr.DeleteCodeType(codeType, dbUpdateInfo);
|
||||
SetErrorState(codeTypeMgr.ErrorStateMessage);
|
||||
return result;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Maintain code types - returns true if changes made.
|
||||
public override bool MaintainCodeTypes (bool userCanManageCodeTypes, DbUpdateInfo dbUpdateInfo)
|
||||
public override bool MaintainCodeTypes(bool userCanManageCodeTypes, DbUpdateInfo dbUpdateInfo)
|
||||
{
|
||||
ClearErrorState();
|
||||
MaintainCodeTypesFn?.Invoke(this, userCanManageCodeTypes, dbUpdateInfo);
|
||||
return false;
|
||||
}
|
||||
// Method to display Code Type management dialog.
|
||||
protected delegate bool MaintainCodeTypesFunction (SaCodeTypeConsole codeTypeConsole, bool userCanManageCodeTypes, DbUpdateInfo dbUpdateInfo);
|
||||
protected delegate bool MaintainCodeTypesFunction(SaCodeTypeConsole codeTypeConsole, bool userCanManageCodeTypes, DbUpdateInfo dbUpdateInfo);
|
||||
protected abstract MaintainCodeTypesFunction MaintainCodeTypesFn { get; }
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Maintain code type - returns true if changes made.
|
||||
public override bool MaintainCodeType (String codeTypeCode, DbUpdateInfo dbUpdateInfo)
|
||||
public override bool MaintainCodeType(String codeTypeCode, DbUpdateInfo dbUpdateInfo)
|
||||
{
|
||||
ClearErrorState();
|
||||
return false;
|
||||
@@ -125,8 +194,21 @@ namespace Sarand.Net.Standard.Dbas.CodeTypes
|
||||
//*******************************************************************
|
||||
// C o d e s
|
||||
//*******************************************************************
|
||||
|
||||
// Create code.
|
||||
public override SaCode CreateCode(SysId codeTypeId, String code)
|
||||
{
|
||||
return codeTypeMgr.CreateCode(codeTypeId, code);
|
||||
}
|
||||
|
||||
// Check whether code exists.
|
||||
public override bool CodeExistsForCodeType (String codeTypeCode, String code, bool activeOnly)
|
||||
|
||||
public override bool CodeTypeHasCodes(String codeTypeCode, bool activeOnly = true)
|
||||
{
|
||||
return GetCodeCountForCodeType(codeTypeCode, activeOnly) > 0;
|
||||
}
|
||||
|
||||
public override bool CodeExistsForCodeType(String codeTypeCode, String code, bool activeOnly)
|
||||
{
|
||||
ClearErrorState();
|
||||
if (StringUtil.IsEmpty(codeTypeCode) || StringUtil.IsEmpty(code)) return false;
|
||||
@@ -138,13 +220,7 @@ namespace Sarand.Net.Standard.Dbas.CodeTypes
|
||||
return (codeTypeMgr.GetCodeCount(prmCode) == 1);
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Codes exist for code type.
|
||||
public override bool CodeTypeHasCodes (String codeTypeCode, bool activeOnly = true)
|
||||
{
|
||||
return GetCodeCountForCodeType(codeTypeCode, activeOnly) > 0;
|
||||
}
|
||||
public override int GetCodeCountForCodeType (String codeTypeCode, bool activeOnly = true)
|
||||
public override int GetCodeCountForCodeType(String codeTypeCode, bool activeOnly = true)
|
||||
{
|
||||
ClearErrorState();
|
||||
if (StringUtil.IsEmpty(codeTypeCode)) return 0;
|
||||
@@ -155,8 +231,17 @@ namespace Sarand.Net.Standard.Dbas.CodeTypes
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Get code for code type.
|
||||
public override SaCode GetCodeForCodeType (String codeTypeCode, String code, bool activeOnly = true)
|
||||
// Get code.
|
||||
|
||||
public override SaCode GetCodeById(SysId codeId)
|
||||
{
|
||||
ClearErrorState();
|
||||
SaCode code = codeTypeMgr.GetCodeById(codeId);
|
||||
SetErrorState(codeTypeMgr.ErrorStateMessage);
|
||||
return code;
|
||||
}
|
||||
|
||||
public override SaCode GetCodeForCodeType(String codeTypeCode, String code, bool activeOnly = true)
|
||||
{
|
||||
ClearErrorState();
|
||||
if (StringUtil.IsEmpty(codeTypeCode) || StringUtil.IsEmpty(code)) return null;
|
||||
@@ -164,15 +249,13 @@ namespace Sarand.Net.Standard.Dbas.CodeTypes
|
||||
prmCode.CodeTypeCodes.Add(codeTypeCode);
|
||||
prmCode.Code = code;
|
||||
prmCode.StatusCat = (activeOnly ? SaCode.StatusCat.ActiveOnly : SaCode.StatusCat.Any);
|
||||
List<SaCode> codes = codeTypeMgr.GetCodeList(prmCode);
|
||||
if (codes.Count > 0)
|
||||
return codes[0];
|
||||
return null;
|
||||
return codeTypeMgr.GetCode(prmCode);
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Get codes for code type.
|
||||
public override List<CodeDesc> GetCodeDescsForCodeType (String codeTypeCode, bool activeOnly = true)
|
||||
|
||||
public override List<CodeDesc> GetCodeDescsForCodeType(String codeTypeCode, bool activeOnly = true)
|
||||
{
|
||||
ClearErrorState();
|
||||
List<CodeDesc> codes = new List<CodeDesc>();
|
||||
@@ -202,7 +285,8 @@ namespace Sarand.Net.Standard.Dbas.CodeTypes
|
||||
}
|
||||
return codes;
|
||||
}
|
||||
public override List<SaCode> GetCodeListForCodeType (String codeTypeCode, bool activeOnly = true)
|
||||
|
||||
public override List<SaCode> GetCodesForCodeType(String codeTypeCode, bool activeOnly = true)
|
||||
{
|
||||
ClearErrorState();
|
||||
if (StringUtil.IsEmpty(codeTypeCode)) return new List<SaCode>();
|
||||
@@ -221,34 +305,34 @@ namespace Sarand.Net.Standard.Dbas.CodeTypes
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Codes by filter.
|
||||
public override int GetCodeCount (SaCode.Params prmCode)
|
||||
public override int GetCodeCount(SaCode.Params prmCode)
|
||||
{
|
||||
ClearErrorState();
|
||||
return (int)codeTypeMgr.GetCodeCount(prmCode);
|
||||
}
|
||||
public override SaCode GetCode (SaCode.Params prmCode)
|
||||
public override SaCode GetCode(SaCode.Params prmCode)
|
||||
{
|
||||
ClearErrorState();
|
||||
return codeTypeMgr.GetCode(prmCode);
|
||||
}
|
||||
public override List<SaCode> GetCodeList (SaCode.Params prmCode)
|
||||
public override List<SaCode> GetCodeList(SaCode.Params prmCode)
|
||||
{
|
||||
ClearErrorState();
|
||||
return codeTypeMgr.GetCodeList(prmCode);
|
||||
}
|
||||
public override ColumnDfn GetCodeColumnDfn (SaCode.Column columnId, String caption = "", int width = 0)
|
||||
public override ColumnDfn GetCodeColumnDfn(SaCode.Column columnId, String caption = "", int width = 0)
|
||||
{
|
||||
ClearErrorState();
|
||||
return codeTypeMgr.GetCodeColumnDfn(columnId, caption, width);
|
||||
}
|
||||
public override DbResultSet ExecuteCodeQuery (List<ColumnDfn> columns, SaCode.Params prm)
|
||||
public override DbResultSet ExecuteCodeQuery(List<ColumnDfn> columns, SaCode.Params prm)
|
||||
{
|
||||
ClearErrorState();
|
||||
return codeTypeMgr.ExecuteCodeQuery(columns, prm);
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
public override DataValue GetCodeDataValue (ColumnDfn column, NamedValue.Map values)
|
||||
public override DataValue GetCodeDataValue(ColumnDfn column, NamedValue.Map values)
|
||||
{
|
||||
ClearErrorState();
|
||||
return codeTypeMgr.GetCodeDataValue(column, values);
|
||||
@@ -256,7 +340,7 @@ namespace Sarand.Net.Standard.Dbas.CodeTypes
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Get filtered codes, indexed by Code Type code.
|
||||
public override Dictionary<String, List<SaCode>> GetCodesByCodeType (SaCode.Params prmCode)
|
||||
public override Dictionary<String, List<SaCode>> GetCodesByCodeType(SaCode.Params prmCode)
|
||||
{
|
||||
ClearErrorState();
|
||||
|
||||
@@ -265,14 +349,14 @@ namespace Sarand.Net.Standard.Dbas.CodeTypes
|
||||
|
||||
// Retrieve code type codes.
|
||||
SaCodeType.Params prmCodeType = new SaCodeType.Params();
|
||||
prmCodeType.IncludedIds.AddRange(codesByCodeTypeId.Keys);
|
||||
prmCodeType.IdsIncluded.UnionWith(codesByCodeTypeId.Keys);
|
||||
prmCodeType.StatusCat = SaCodeType.StatusCat.Any;
|
||||
List<SaCodeType> codeTypes = codeTypeMgr.GetCodeTypeList(prmCodeType);
|
||||
|
||||
// Convert Code Type identity from Id to code and sort each list of codes appropriately.
|
||||
return ConvertCodeTypeIdentityAndSortCodes(codesByCodeTypeId, codeTypes);
|
||||
}
|
||||
public override async Task<Dictionary<String, List<SaCode>>> GetCodesByCodeTypeAsync (SaCode.Params prmCode)
|
||||
public override async Task<Dictionary<String, List<SaCode>>> GetCodesByCodeTypeAsync(SaCode.Params prmCode)
|
||||
{
|
||||
ClearErrorState();
|
||||
|
||||
@@ -281,14 +365,14 @@ namespace Sarand.Net.Standard.Dbas.CodeTypes
|
||||
|
||||
// Retrieve code type codes.
|
||||
SaCodeType.Params prmCodeType = new SaCodeType.Params();
|
||||
prmCodeType.IncludedIds.AddRange(codesByCodeTypeId.Keys);
|
||||
prmCodeType.IdsIncluded.UnionWith(codesByCodeTypeId.Keys);
|
||||
prmCodeType.StatusCat = SaCodeType.StatusCat.Any;
|
||||
List<SaCodeType> codeTypes = await codeTypeMgr.GetCodeTypeListAsync(prmCodeType);
|
||||
|
||||
// Convert Code Type identity from Id to code and sort each list of codes appropriately.
|
||||
return ConvertCodeTypeIdentityAndSortCodes(codesByCodeTypeId, codeTypes);
|
||||
}
|
||||
private Dictionary<SysId, List<SaCode>> GetCodesByCodeTypeId (List<SaCode> codes)
|
||||
private Dictionary<SysId, List<SaCode>> GetCodesByCodeTypeId(List<SaCode> codes)
|
||||
{
|
||||
// Retrieve codes and index by Code Type Id.
|
||||
Dictionary<SysId, List<SaCode>> codesByCodeTypeId = new Dictionary<SysId, List<SaCode>>();
|
||||
@@ -300,7 +384,7 @@ namespace Sarand.Net.Standard.Dbas.CodeTypes
|
||||
}
|
||||
return codesByCodeTypeId;
|
||||
}
|
||||
private Dictionary<String, List<SaCode>> ConvertCodeTypeIdentityAndSortCodes (Dictionary<SysId, List<SaCode>> codesByCodeTypeId, List<SaCodeType> codeTypes)
|
||||
private Dictionary<String, List<SaCode>> ConvertCodeTypeIdentityAndSortCodes(Dictionary<SysId, List<SaCode>> codesByCodeTypeId, List<SaCodeType> codeTypes)
|
||||
{
|
||||
// Convert identity from Code Type Id to Code and sort list foc deos associated with each code type.
|
||||
Dictionary<String, List<SaCode>> codesByCodeType = new Dictionary<string, List<SaCode>>();
|
||||
@@ -329,12 +413,12 @@ namespace Sarand.Net.Standard.Dbas.CodeTypes
|
||||
public String Code { get; set; } = "";
|
||||
public String Desc { get; set; } = "";
|
||||
public int Sequence { get; set; } = 0;
|
||||
public static explicit operator CodeDesc (CodeData codeData)
|
||||
public static explicit operator CodeDesc(CodeData codeData)
|
||||
{
|
||||
return new CodeDesc(codeData.Code, codeData.Desc);
|
||||
}
|
||||
}
|
||||
public override Dictionary<String, List<CodeDesc>> GetCodeDescsByCodeType (SaCode.Params prmCode)
|
||||
public override Dictionary<String, List<CodeDesc>> GetCodeDescsByCodeType(SaCode.Params prmCode)
|
||||
{
|
||||
ClearErrorState();
|
||||
// Query columns.
|
||||
@@ -381,9 +465,33 @@ namespace Sarand.Net.Standard.Dbas.CodeTypes
|
||||
return codes;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Code updates.
|
||||
public override bool InsertCode(SaCode code, DbUpdateInfo dbUpdateInfo)
|
||||
{
|
||||
ClearErrorState();
|
||||
bool result = codeTypeMgr.InsertCode(code, dbUpdateInfo);
|
||||
SetErrorState(codeTypeMgr.ErrorStateMessage);
|
||||
return result;
|
||||
}
|
||||
public override bool UpdateCode(SaCode code, DbUpdateInfo dbUpdateInfo)
|
||||
{
|
||||
ClearErrorState();
|
||||
bool result = codeTypeMgr.UpdateCode(code, dbUpdateInfo);
|
||||
SetErrorState(codeTypeMgr.ErrorStateMessage);
|
||||
return result;
|
||||
}
|
||||
public override bool DeleteCode(SaCode code, DbUpdateInfo dbUpdateInfo)
|
||||
{
|
||||
ClearErrorState();
|
||||
bool result = codeTypeMgr.DeleteCode(code, dbUpdateInfo);
|
||||
SetErrorState(codeTypeMgr.ErrorStateMessage);
|
||||
return result;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Create codes.
|
||||
public override bool CreateCodeOfType (SysId codeTypeId, String code, String desc, DbUpdateInfo dbUpdateInfo)
|
||||
public override bool CreateCodeOfType(SysId codeTypeId, String code, String desc, DbUpdateInfo dbUpdateInfo)
|
||||
{
|
||||
ClearErrorState();
|
||||
if (!SysId.IsValid(codeTypeId)) return SetErrorState("Code type must be identified");
|
||||
@@ -393,7 +501,7 @@ namespace Sarand.Net.Standard.Dbas.CodeTypes
|
||||
return SetErrorState("Failed to insert code - " + codeTypeMgr.ErrorStateMessage);
|
||||
return true;
|
||||
}
|
||||
public override bool CreateCodeOfType (String codeTypeCode, String code, String desc, DbUpdateInfo dbUpdateInfo)
|
||||
public override bool CreateCodeOfType(String codeTypeCode, String code, String desc, DbUpdateInfo dbUpdateInfo)
|
||||
{
|
||||
ClearErrorState();
|
||||
SaCodeType codeTypeData = codeTypeMgr.GetCodeTypeByCode(codeTypeCode);
|
||||
@@ -404,7 +512,7 @@ namespace Sarand.Net.Standard.Dbas.CodeTypes
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Populate code types - application specific.
|
||||
public override bool PopulateCodeType (String codeTypeCode, DbUpdateInfo dbUpdateInfo)
|
||||
public override bool PopulateCodeType(String codeTypeCode, DbUpdateInfo dbUpdateInfo)
|
||||
{
|
||||
ClearErrorState();
|
||||
if (StringUtil.IsEmpty(codeTypeCode)) return SetErrorState("Code type code must be supplied");
|
||||
@@ -419,7 +527,7 @@ namespace Sarand.Net.Standard.Dbas.CodeTypes
|
||||
{
|
||||
// Create code type.
|
||||
codeType = codeTypeMgr.CreateCodeType(codeTypeCode);
|
||||
codeType.Description = codeTypeDfn.Description;
|
||||
codeType.Name = codeTypeDfn.Description;
|
||||
codeType.Notes = codeTypeDfn.Notes;
|
||||
codeType.Status = SaCodeType.DefaultStatus;
|
||||
if (!codeTypeMgr.InsertCodeType(codeType, dbUpdateInfo))
|
||||
@@ -428,7 +536,7 @@ namespace Sarand.Net.Standard.Dbas.CodeTypes
|
||||
else
|
||||
{
|
||||
// Code type exists - refresh properties.
|
||||
codeType.Description = codeTypeDfn.Description;
|
||||
codeType.Name = codeTypeDfn.Description;
|
||||
if (StringUtil.IsEmpty(codeType.Notes))
|
||||
codeType.Notes = codeTypeDfn.Notes;
|
||||
codeType.Status = SaCodeType.DefaultStatus;
|
||||
@@ -454,7 +562,7 @@ namespace Sarand.Net.Standard.Dbas.CodeTypes
|
||||
|
||||
return true;
|
||||
}
|
||||
public override bool PopulateCode (String codeTypeCode, String code, String desc, bool active, DbUpdateInfo dbUpdateInfo)
|
||||
public override bool PopulateCode(String codeTypeCode, String code, String desc, bool active, DbUpdateInfo dbUpdateInfo)
|
||||
{
|
||||
ClearErrorState();
|
||||
if (StringUtil.IsEmpty(codeTypeCode)) return SetErrorState("Code type code must be supplied");
|
||||
@@ -481,7 +589,7 @@ namespace Sarand.Net.Standard.Dbas.CodeTypes
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Select codes.
|
||||
public override List<String> SelectCodes (String codeTypeCode, List<String> codesSelected)
|
||||
public override List<String> SelectCodes(String codeTypeCode, List<String> codesSelected)
|
||||
{
|
||||
ClearErrorState();
|
||||
List<String> codes = new List<String>();
|
||||
|
||||
@@ -14,7 +14,7 @@ namespace Sarand.Net.Standard.Dbas.CodeType
|
||||
{
|
||||
//-------------------------------------------------------------------
|
||||
// Data members.
|
||||
private static String className = nameof(SaCodeTypeDbDfnGenerator);
|
||||
//private static String className = nameof(SaCodeTypeDbDfnGenerator);
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
/// <summary>
|
||||
|
||||
@@ -12,6 +12,7 @@ using Sarand.Net.Standard.Dbas.Base;
|
||||
using Sarand.Net.Standard.Dbas.CodeTypes.Internal;
|
||||
using Sarand.Net.Standard.Dbas.Data;
|
||||
using Sarand.Net.Standard.Base.Utils;
|
||||
using System.Text.RegularExpressions;
|
||||
|
||||
namespace Sarand.Net.Standard.Dbas.CodeTypes
|
||||
{
|
||||
@@ -24,13 +25,13 @@ namespace Sarand.Net.Standard.Dbas.CodeTypes
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Static initialisation.
|
||||
static SaCodeTypeMgr_Dbas ()
|
||||
static SaCodeTypeMgr_Dbas()
|
||||
{
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Construction.
|
||||
internal SaCodeTypeMgr_Dbas (SaCodeTypeConsole_Dbas codeTypeConsole)
|
||||
internal SaCodeTypeMgr_Dbas(SaCodeTypeConsole_Dbas codeTypeConsole)
|
||||
{
|
||||
this.codeTypeConsole = codeTypeConsole;
|
||||
DbInfo = new DbDataItem.DatabaseInfo(codeTypeConsole.Database);
|
||||
@@ -49,7 +50,7 @@ namespace Sarand.Net.Standard.Dbas.CodeTypes
|
||||
// C o d e T y p e s
|
||||
//*******************************************************************
|
||||
// Associated data.
|
||||
public override bool CodeTypeHasCodes (SysId codeTypeId)
|
||||
public override bool CodeTypeHasCodes(SysId codeTypeId)
|
||||
{
|
||||
String filter = SaCodeTypeDbDfn.GetColumnName(SaCodeTypeDbDfn.ColumnIdx.SaCode_CodeTypeId) + "=" + SysId.ToString(codeTypeId);
|
||||
return (Database.GetRowCount(TableName_Code, filter) > 0);
|
||||
@@ -57,19 +58,19 @@ namespace Sarand.Net.Standard.Dbas.CodeTypes
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Create Code Type.
|
||||
public override SaCodeType CreateCodeType (String code)
|
||||
public override SaCodeType CreateCodeType(String code)
|
||||
{
|
||||
ClearErrorState();
|
||||
return new SaCodeType_Dbas(null, code, 0);
|
||||
}
|
||||
public SaCodeType CreateCodeType (SaCodeType_Db dbCodeType)
|
||||
public SaCodeType CreateCodeType(SaCodeType_Db dbCodeType)
|
||||
{
|
||||
ClearErrorState();
|
||||
SaCodeType codeType = new SaCodeType_Dbas(new SysId(dbCodeType._Id), dbCodeType._Code, (ushort)dbCodeType._Flags);
|
||||
PopulateFrom(dbCodeType, codeType);
|
||||
return codeType;
|
||||
}
|
||||
private SaCodeType CreateCodeType (DbDataReader dataReader)
|
||||
private SaCodeType CreateCodeType(DbDataReader dataReader)
|
||||
{
|
||||
SaCodeType_Db dbCodeType = new SaCodeType_Db(DbInfo);
|
||||
dbCodeType.PopulateFrom(dataReader);
|
||||
@@ -78,22 +79,22 @@ namespace Sarand.Net.Standard.Dbas.CodeTypes
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Item exists.
|
||||
public override bool CodeTypeExistsById (SysId id)
|
||||
public override bool CodeTypeExistsById(SysId id)
|
||||
{
|
||||
ClearErrorState();
|
||||
if (!SysId.IsValid(id)) return false;
|
||||
return GetCodeTypeCount(SaCodeTypeDbDfn.GetColumnNameQual(SaCodeTypeDbDfn.ColumnIdx.SaCodeType_Id, aliasCodeType) + "=" + SysId.ToString(id)) == 1;
|
||||
return GetCodeTypeCount($"{SaCodeTypeDbDfn.GetColumnNameQual(SaCodeTypeDbDfn.ColumnIdx.SaCodeType_Id, aliasCodeType)}={SysId.ToLong(id)}") == 1;
|
||||
}
|
||||
public override bool CodeTypeExistsByCode (string code)
|
||||
public override bool CodeTypeExistsByCode(string code)
|
||||
{
|
||||
ClearErrorState();
|
||||
if (StringUtil.IsEmpty(code)) return false;
|
||||
return GetCodeTypeCount(SaCodeTypeDbDfn.GetColumnNameQual(SaCodeTypeDbDfn.ColumnIdx.SaCodeType_Code, aliasCodeType) + "='" + DbQuery.FormatForCondition(code) + "'") == 1;
|
||||
return GetCodeTypeCount($"{SaCodeTypeDbDfn.GetColumnNameQual(SaCodeTypeDbDfn.ColumnIdx.SaCodeType_Code, aliasCodeType)}='{DbQuery.FormatForCondition(code)}'") == 1;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Get Item.
|
||||
private SaCodeType GetCodeType (String filter)
|
||||
private SaCodeType GetCodeType(String filter)
|
||||
{
|
||||
ClearErrorState();
|
||||
if (GetCodeTypeCount(filter) != 1) return null;
|
||||
@@ -117,18 +118,18 @@ namespace Sarand.Net.Standard.Dbas.CodeTypes
|
||||
}
|
||||
return codeType;
|
||||
}
|
||||
public override SaCodeType GetCodeType (SaCodeType.Params prmCodeType)
|
||||
public override SaCodeType GetCodeType(SaCodeType.Params prmCodeType)
|
||||
{
|
||||
ClearErrorState();
|
||||
return GetCodeType(GetCodeTypeQueryFilter(prmCodeType).Concat(" And ", "(", ")"));
|
||||
}
|
||||
public override SaCodeType GetCodeTypeById (SysId id)
|
||||
public override SaCodeType GetCodeTypeById(SysId id)
|
||||
{
|
||||
ClearErrorState();
|
||||
if (!SysId.IsValid(id)) return null;
|
||||
return GetCodeType("Id=" + SysId.ToString(id));
|
||||
}
|
||||
public override SaCodeType GetCodeTypeByCode (string code)
|
||||
public override SaCodeType GetCodeTypeByCode(string code)
|
||||
{
|
||||
ClearErrorState();
|
||||
if (StringUtil.IsEmpty(code)) return null;
|
||||
@@ -137,7 +138,7 @@ namespace Sarand.Net.Standard.Dbas.CodeTypes
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Validate Item properties.
|
||||
public override bool IsValidCodeTypeData (SaCodeType.Data codeTypeData, SaCodeType.ErrField errField)
|
||||
public override bool IsValidCodeTypeData(SaCodeType.Data codeTypeData, SaCodeType.ErrField errField)
|
||||
{
|
||||
ClearErrorState();
|
||||
if (!base.IsValidCodeTypeData(codeTypeData, errField)) return false;
|
||||
@@ -146,7 +147,7 @@ namespace Sarand.Net.Standard.Dbas.CodeTypes
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Insert Item.
|
||||
public override bool InsertCodeType (SaCodeType codeType, DbUpdateInfo dbUpdateInfo)
|
||||
public override bool InsertCodeType(SaCodeType codeType, DbUpdateInfo dbUpdateInfo)
|
||||
{
|
||||
ClearErrorState();
|
||||
if (!IsValidCodeType(codeType)) return false;
|
||||
@@ -174,7 +175,7 @@ namespace Sarand.Net.Standard.Dbas.CodeTypes
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Update Item.
|
||||
public override bool UpdateCodeType (SaCodeType codeType, DbUpdateInfo dbUpdateInfo)
|
||||
public override bool UpdateCodeType(SaCodeType codeType, DbUpdateInfo dbUpdateInfo)
|
||||
{
|
||||
ClearErrorState();
|
||||
if (!IsValidCodeType(codeType)) return false;
|
||||
@@ -199,13 +200,13 @@ namespace Sarand.Net.Standard.Dbas.CodeTypes
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Delete Item.
|
||||
public override bool CodeTypeCanBeDeleted (SaCodeType codeType)
|
||||
public override bool CodeTypeCanBeDeleted(SaCodeType codeType)
|
||||
{
|
||||
ClearErrorState();
|
||||
if (!base.CodeTypeCanBeDeleted(codeType)) return false;
|
||||
return true;
|
||||
}
|
||||
public override bool DeleteCodeType (SaCodeType codeType, DbUpdateInfo dbUpdateInfo)
|
||||
public override bool DeleteCodeType(SaCodeType codeType, DbUpdateInfo dbUpdateInfo)
|
||||
{
|
||||
ClearErrorState();
|
||||
if (!CodeTypeCanBeDeleted(codeType)) return false;
|
||||
@@ -230,11 +231,11 @@ namespace Sarand.Net.Standard.Dbas.CodeTypes
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Copy data properties to and from database.
|
||||
private void PopulateTo (SaCodeType_Db dbCodeType, SaCodeType codeType, DbUpdateInfo dbUpdateInfo)
|
||||
private void PopulateTo(SaCodeType_Db dbCodeType, SaCodeType codeType, DbUpdateInfo dbUpdateInfo)
|
||||
{
|
||||
dbCodeType._Id = codeType.Id.ToInt();
|
||||
dbCodeType._Code = codeType.Code;
|
||||
dbCodeType._Name = codeType.Description;
|
||||
dbCodeType._Name = codeType.Name;
|
||||
dbCodeType._MaxCodeLen = codeType.MaxCodeLen;
|
||||
dbCodeType._CodeFormat = codeType.CodeFormat;
|
||||
dbCodeType._NextCode = codeType.NextCode;
|
||||
@@ -252,11 +253,11 @@ namespace Sarand.Net.Standard.Dbas.CodeTypes
|
||||
dbCodeType._UpdateBy = dbUpdateInfo.UserId.ToInt();
|
||||
dbCodeType._UpdateHost = dbUpdateInfo.Host;
|
||||
}
|
||||
private void PopulateFrom (SaCodeType_Db dbCodeType, SaCodeType codeType)
|
||||
private void PopulateFrom(SaCodeType_Db dbCodeType, SaCodeType codeType)
|
||||
{
|
||||
//codeType.Id = new SysId(dbCodeType._Id);
|
||||
codeType.Code = dbCodeType._Code;
|
||||
codeType.Description = dbCodeType._Name;
|
||||
codeType.Name = dbCodeType._Name;
|
||||
codeType.MaxCodeLen = dbCodeType._MaxCodeLen;
|
||||
codeType.CodeFormat = dbCodeType._CodeFormat;
|
||||
codeType.NextCode = dbCodeType._NextCode;
|
||||
@@ -281,7 +282,7 @@ namespace Sarand.Net.Standard.Dbas.CodeTypes
|
||||
alias = aliasCodeType;
|
||||
col.Set(caption, width, (int)dbCol, prefix + SaCodeTypeDbDfn.GetColumnName(dbCol, false), SaCodeTypeDbDfn.GetColumnNameQual(dbCol, alias), dataType, align);
|
||||
}
|
||||
public override ColumnDfn GetCodeTypeColumnDfn (SaCodeType.Column columnId, string caption = "", int width = 0)
|
||||
public override ColumnDfn GetCodeTypeColumnDfn(SaCodeType.Column columnId, string caption = "", int width = 0)
|
||||
{
|
||||
ColumnDfn columnDfn = new ColumnDfn((int)columnId, caption, width);
|
||||
switch (columnId)
|
||||
@@ -300,8 +301,8 @@ namespace Sarand.Net.Standard.Dbas.CodeTypes
|
||||
case SaCodeType.Column.Code:
|
||||
SetCodeTypeColDfn(columnDfn, "Code", 90, SaCodeTypeDbDfn.ColumnIdx.SaCodeType_Code);
|
||||
break;
|
||||
case SaCodeType.Column.Description:
|
||||
SetCodeTypeColDfn(columnDfn, "Description", 160, SaCodeTypeDbDfn.ColumnIdx.SaCodeType_Name);
|
||||
case SaCodeType.Column.Name:
|
||||
SetCodeTypeColDfn(columnDfn, "Name", 160, SaCodeTypeDbDfn.ColumnIdx.SaCodeType_Name);
|
||||
break;
|
||||
case SaCodeType.Column.MaxCodeLen:
|
||||
SetCodeTypeColDfn(columnDfn, "Max code len", 90, SaCodeTypeDbDfn.ColumnIdx.SaCodeType_MaxCodeLen, ColumnAlignment.Center, DataValue.DataType.Long);
|
||||
@@ -355,43 +356,63 @@ namespace Sarand.Net.Standard.Dbas.CodeTypes
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Query filter.
|
||||
public override List<string> GetCodeTypeQueryFilter (SaCodeType.Params prm)
|
||||
public override List<string> GetCodeTypeQueryFilter(SaCodeType.Params prm)
|
||||
{
|
||||
List<String> filter = new List<String>();
|
||||
|
||||
// Code Type Id.
|
||||
String colId = SaCodeTypeDbDfn.GetColumnNameQual(SaCodeTypeDbDfn.ColumnIdx.SaCodeType_Id, aliasCodeType);
|
||||
String includedIds = prm.IncludedIds.Concat(",");
|
||||
if (!includedIds.IsEmpty())
|
||||
filter.Add(colId + " IN (" + includedIds + ")");
|
||||
String excludedIds = prm.ExcludedIds.Concat(",");
|
||||
if (!excludedIds.IsEmpty())
|
||||
filter.Add(colId + " NOT IN (" + excludedIds + ")");
|
||||
String colCode = SaCodeTypeDbDfn.GetColumnNameQual(SaCodeTypeDbDfn.ColumnIdx.SaCodeType_Code, aliasCodeType);
|
||||
String colName = SaCodeTypeDbDfn.GetColumnNameQual(SaCodeTypeDbDfn.ColumnIdx.SaCodeType_Name, aliasCodeType);
|
||||
String colNotes = SaCodeTypeDbDfn.GetColumnNameQual(SaCodeTypeDbDfn.ColumnIdx.SaCodeType_Notes, aliasCodeType);
|
||||
String colStatus = SaCodeTypeDbDfn.GetColumnNameQual(SaCodeTypeDbDfn.ColumnIdx.SaCodeType_Status, aliasCodeType);
|
||||
|
||||
// Item Id.
|
||||
if (prm.IdsIncluded.HasValidIds())
|
||||
filter.Add($"{colId} IN ({prm.IdsIncluded.Concat(",")})");
|
||||
if (prm.IdsExcluded.HasValidIds())
|
||||
filter.Add($"{colId} NOT IN ({prm.IdsExcluded.Concat(",")})");
|
||||
|
||||
// Generic search.
|
||||
if (!StringUtil.IsBlank(prm.Search))
|
||||
{
|
||||
foreach (String search in Regex.Split(prm.Search, "[\\s,;\\-+]+"))
|
||||
{
|
||||
if (StringUtil.IsBlank(search)) continue;
|
||||
String searchForLike = DbQuery.FormatForLike(search, true);
|
||||
List<String> searchFilter = new List<string>();
|
||||
searchFilter.Add($"{colCode} LIKE '%{searchForLike}%'");
|
||||
searchFilter.Add($"{colName} LIKE '%{searchForLike}%'");
|
||||
searchFilter.Add($"{colNotes} LIKE '%{searchForLike}%'");
|
||||
filter.Add(searchFilter.Concat(" OR ", "(", ")"));
|
||||
}
|
||||
}
|
||||
|
||||
// Code.
|
||||
String colCode = SaCodeTypeDbDfn.GetColumnNameQual(SaCodeTypeDbDfn.ColumnIdx.SaCodeType_Code, aliasCodeType);
|
||||
if (!StringUtil.IsEmpty(prm.Code))
|
||||
filter.Add(colCode + "='" + DbQuery.FormatForCondition(prm.Code) + "'");
|
||||
else if (!StringUtil.IsEmpty(prm.CodePartial))
|
||||
filter.Add(colCode + " LIKE '%" + DbQuery.FormatForLike(prm.CodePartial) + "%'");
|
||||
if (!StringUtil.IsBlank(prm.Code))
|
||||
filter.Add($"{colCode}='{DbQuery.FormatForCondition(prm.Code)}'");
|
||||
else if (!StringUtil.IsBlank(prm.CodePartial))
|
||||
filter.Add($"{colCode} LIKE '%{DbQuery.FormatForLike(prm.CodePartial)}%'");
|
||||
|
||||
// Description.
|
||||
String colName = SaCodeTypeDbDfn.GetColumnNameQual(SaCodeTypeDbDfn.ColumnIdx.SaCodeType_Name, aliasCodeType);
|
||||
if (!StringUtil.IsEmpty(prm.Desc))
|
||||
filter.Add(colName + "='" + DbQuery.FormatForCondition(prm.Desc) + "'");
|
||||
else if (!StringUtil.IsEmpty(prm.DescPartial))
|
||||
filter.Add(colName + " LIKE '%" + DbQuery.FormatForLike(prm.DescPartial) + "%'");
|
||||
// Name.
|
||||
if (!StringUtil.IsBlank(prm.Name))
|
||||
filter.Add($"{colName}='{DbQuery.FormatForCondition(prm.Name)}'");
|
||||
else if (!StringUtil.IsBlank(prm.NamePartial))
|
||||
filter.Add($"{colName} LIKE '%" + DbQuery.FormatForLike(prm.NamePartial) + "%'");
|
||||
|
||||
// Status.
|
||||
String colStatus = SaCodeTypeDbDfn.GetColumnNameQual(SaCodeTypeDbDfn.ColumnIdx.SaCodeType_Status, aliasCodeType);
|
||||
if (prm.StatusCat == SaCodeType.StatusCat.ActiveOnly)
|
||||
filter.Add(colStatus + " In ('" + SacsSystem.GetStatusCode(SaCodeType.CurrentStatus) + "')");
|
||||
filter.Add($"{colStatus} In ('{SacsSystem.GetStatusCode(SaCodeType.CurrentStatus)}')");
|
||||
else if (prm.StatusCat == SaCodeType.StatusCat.NotDeleted)
|
||||
filter.Add($"{colStatus} Not In ('{SacsSystem.GetStatusCode(SaStatus.Deleted)}')");
|
||||
else if (prm.StatusCat == SaCodeType.StatusCat.DeletedOnly)
|
||||
filter.Add($"{colStatus} In ('{SacsSystem.GetStatusCode(SaStatus.Deleted)}')");
|
||||
|
||||
if (filter.Count < 1 && prm.IncludeDefaultFilter) filter.Add("1=1");
|
||||
return filter;
|
||||
}
|
||||
// CodeType sort columns.
|
||||
public List<String> GetCodeTypeSortColumns (SaCodeType.Params prm)
|
||||
|
||||
// Item sort columns.
|
||||
public List<String> GetCodeTypeSortColumns(SaCodeType.Params prm)
|
||||
{
|
||||
// Sort sequence:
|
||||
List<String> sortColumnNames = new List<String>();
|
||||
@@ -428,12 +449,12 @@ namespace Sarand.Net.Standard.Dbas.CodeTypes
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Item count.
|
||||
private long GetCodeTypeCount (String filter)
|
||||
private long GetCodeTypeCount(String filter)
|
||||
{
|
||||
ClearErrorState();
|
||||
return Database.GetRowCount(TableName_CodeType + " As " + aliasCodeType, filter);
|
||||
}
|
||||
public override long GetCodeTypeCount (SaCodeType.Params prm)
|
||||
public override long GetCodeTypeCount(SaCodeType.Params prm)
|
||||
{
|
||||
ClearErrorState();
|
||||
return GetCodeTypeCount(GetCodeTypeQueryFilter(prm).Concat(" AND ", "(", ")"));
|
||||
@@ -441,7 +462,7 @@ namespace Sarand.Net.Standard.Dbas.CodeTypes
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Item list.
|
||||
private DbQuery CreateCodeTypeQuery (SaCodeType.Params prm)
|
||||
private DbQuery CreateCodeTypeQuery(SaCodeType.Params prm)
|
||||
{
|
||||
DbQuery qry = new DbQuery(Database.DbmsType);
|
||||
qry.Tables.Add(TableName_CodeType, aliasCodeType);
|
||||
@@ -451,7 +472,7 @@ namespace Sarand.Net.Standard.Dbas.CodeTypes
|
||||
qry.OrderBy.AddRange(GetCodeTypeSortColumns(prm));
|
||||
return qry;
|
||||
}
|
||||
public override List<SaCodeType> GetCodeTypeList (SaCodeType.Params prm)
|
||||
public override List<SaCodeType> GetCodeTypeList(SaCodeType.Params prm)
|
||||
{
|
||||
ClearErrorState();
|
||||
List<SaCodeType> codeTypes = new List<SaCodeType>();
|
||||
@@ -477,7 +498,7 @@ namespace Sarand.Net.Standard.Dbas.CodeTypes
|
||||
}
|
||||
return codeTypes;
|
||||
}
|
||||
public override async Task<List<SaCodeType>> GetCodeTypeListAsync (SaCodeType.Params prm)
|
||||
public override async Task<List<SaCodeType>> GetCodeTypeListAsync(SaCodeType.Params prm)
|
||||
{
|
||||
List<SaCodeType> codeTypes = new List<SaCodeType>();
|
||||
DbQuery qry = CreateCodeTypeQuery(prm);
|
||||
@@ -505,19 +526,19 @@ namespace Sarand.Net.Standard.Dbas.CodeTypes
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Item query.
|
||||
public override DbResultSet ExecuteCodeTypeQuery (List<ColumnDfn> columns, SaCodeType.Params prm)
|
||||
public override DbResultSet ExecuteCodeTypeQuery(List<ColumnDfn> columns, SaCodeType.Params prm)
|
||||
{
|
||||
ClearErrorState();
|
||||
DbQuery query = CompileCodeTypeQuery (columns, prm);
|
||||
DbQuery query = CompileCodeTypeQuery(columns, prm);
|
||||
return DbResultSet_DataReader.ExecuteQuery(Database, query.BuildQuery(prm.ResultsPaging));
|
||||
}
|
||||
public override async Task<DbResultSet> ExecuteCodeTypeQueryAsync (List<ColumnDfn> columns, SaCodeType.Params prm)
|
||||
public override async Task<DbResultSet> ExecuteCodeTypeQueryAsync(List<ColumnDfn> columns, SaCodeType.Params prm)
|
||||
{
|
||||
ClearErrorState();
|
||||
DbQuery query = CompileCodeTypeQuery (columns, prm);
|
||||
DbQuery query = CompileCodeTypeQuery(columns, prm);
|
||||
return await DbResultSet_DataReader.ExecuteQueryAsync(Database, query.BuildQuery(prm.ResultsPaging));
|
||||
}
|
||||
private DbQuery CompileCodeTypeQuery (List<ColumnDfn> columns, SaCodeType.Params prm)
|
||||
private DbQuery CompileCodeTypeQuery(List<ColumnDfn> columns, SaCodeType.Params prm)
|
||||
{
|
||||
//---------------------------------------------------------------------
|
||||
// Construct query.
|
||||
@@ -529,7 +550,7 @@ namespace Sarand.Net.Standard.Dbas.CodeTypes
|
||||
query.Columns.Add(SaCodeTypeDbDfn.GetColumnNameQual(SaCodeTypeDbDfn.ColumnIdx.SaCodeType_Id, aliasCodeType));
|
||||
if (columns.HasId((int)SaCodeType.Column.Code))
|
||||
query.Columns.Add(SaCodeTypeDbDfn.GetColumnNameQual(SaCodeTypeDbDfn.ColumnIdx.SaCodeType_Code, aliasCodeType));
|
||||
if (columns.HasId((int)SaCodeType.Column.Description))
|
||||
if (columns.HasId((int)SaCodeType.Column.Name))
|
||||
query.Columns.Add(SaCodeTypeDbDfn.GetColumnNameQual(SaCodeTypeDbDfn.ColumnIdx.SaCodeType_Name, aliasCodeType));
|
||||
if (columns.HasId((int)SaCodeType.Column.MaxCodeLen))
|
||||
query.Columns.Add(SaCodeTypeDbDfn.GetColumnNameQual(SaCodeTypeDbDfn.ColumnIdx.SaCodeType_MaxCodeLen, aliasCodeType));
|
||||
@@ -566,7 +587,7 @@ namespace Sarand.Net.Standard.Dbas.CodeTypes
|
||||
// Filter and sort sequence.
|
||||
query.Filters.AddRange(GetCodeTypeQueryFilter(prm));
|
||||
|
||||
if (prm.IncludedIds.Count != 1)
|
||||
if (prm.IdsIncluded.Count != 1)
|
||||
{
|
||||
// Configure sort sequence.
|
||||
foreach (String sortColumn in GetCodeTypeSortColumns(prm))
|
||||
@@ -580,19 +601,19 @@ namespace Sarand.Net.Standard.Dbas.CodeTypes
|
||||
// C o d e s
|
||||
//*******************************************************************
|
||||
// Create Item.
|
||||
public override SaCode CreateCode (SysId codeTypeId, String code)
|
||||
public override SaCode CreateCode(SysId codeTypeId, String code)
|
||||
{
|
||||
ClearErrorState();
|
||||
return new SaCode_Dbas(null, codeTypeId, code, 0);
|
||||
}
|
||||
public SaCode CreateCode (SaCode_Db dbCode)
|
||||
public SaCode CreateCode(SaCode_Db dbCode)
|
||||
{
|
||||
ClearErrorState();
|
||||
SaCode saCode = new SaCode_Dbas(new SysId(dbCode._Id), new SysId(dbCode._CodeTypeId), dbCode._Code, (ushort)dbCode._Flags);
|
||||
PopulateFrom(dbCode, saCode);
|
||||
return saCode;
|
||||
}
|
||||
private SaCode CreateCode (DbDataReader dataReader)
|
||||
private SaCode CreateCode(DbDataReader dataReader)
|
||||
{
|
||||
SaCode_Db dbCode = new SaCode_Db(DbInfo);
|
||||
dbCode.PopulateFrom(dataReader);
|
||||
@@ -601,7 +622,7 @@ namespace Sarand.Net.Standard.Dbas.CodeTypes
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Item exists.
|
||||
public override bool CodeExistsById (SysId id)
|
||||
public override bool CodeExistsById(SysId id)
|
||||
{
|
||||
ClearErrorState();
|
||||
if (!SysId.IsValid(id)) return false;
|
||||
@@ -610,7 +631,7 @@ namespace Sarand.Net.Standard.Dbas.CodeTypes
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Get Item.
|
||||
private SaCode GetCode (String filter)
|
||||
private SaCode GetCode(String filter)
|
||||
{
|
||||
ClearErrorState();
|
||||
if (GetCodeCount(filter) != 1) return null;
|
||||
@@ -634,18 +655,18 @@ namespace Sarand.Net.Standard.Dbas.CodeTypes
|
||||
}
|
||||
return code;
|
||||
}
|
||||
public override SaCode GetCode (SaCode.Params prmCode)
|
||||
public override SaCode GetCode(SaCode.Params prmCode)
|
||||
{
|
||||
ClearErrorState();
|
||||
return GetCode(GetCodeQueryFilter(prmCode).Concat(" And ", "(", ")"));
|
||||
}
|
||||
public override SaCode GetCodeById (SysId id)
|
||||
public override SaCode GetCodeById(SysId id)
|
||||
{
|
||||
ClearErrorState();
|
||||
if (!SysId.IsValid(id)) return null;
|
||||
return GetCode("Id=" + SysId.ToString(id));
|
||||
}
|
||||
public override SaCode GetCodeByCodeTypeCode (String codeTypeCode, String code)
|
||||
public override SaCode GetCodeByCodeTypeCode(String codeTypeCode, String code)
|
||||
{
|
||||
ClearErrorState();
|
||||
if (StringUtil.IsEmpty(codeTypeCode) || StringUtil.IsEmpty(code)) return null;
|
||||
@@ -658,7 +679,7 @@ namespace Sarand.Net.Standard.Dbas.CodeTypes
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Validate Item properties.
|
||||
public override bool IsValidCodeData (SaCode.Data codeData, SaCode.ErrField errField)
|
||||
public override bool IsValidCodeData(SaCode.Data codeData, SaCode.ErrField errField)
|
||||
{
|
||||
ClearErrorState();
|
||||
if (!base.IsValidCodeData(codeData, errField)) return false;
|
||||
@@ -667,7 +688,7 @@ namespace Sarand.Net.Standard.Dbas.CodeTypes
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Insert Item.
|
||||
public override bool InsertCode (SaCode code, DbUpdateInfo dbUpdateInfo)
|
||||
public override bool InsertCode(SaCode code, DbUpdateInfo dbUpdateInfo)
|
||||
{
|
||||
ClearErrorState();
|
||||
if (!IsValidCode(code)) return false;
|
||||
@@ -695,7 +716,7 @@ namespace Sarand.Net.Standard.Dbas.CodeTypes
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Update Item.
|
||||
public override bool UpdateCode (SaCode code, DbUpdateInfo dbUpdateInfo)
|
||||
public override bool UpdateCode(SaCode code, DbUpdateInfo dbUpdateInfo)
|
||||
{
|
||||
ClearErrorState();
|
||||
if (!IsValidCode(code)) return false;
|
||||
@@ -723,13 +744,13 @@ namespace Sarand.Net.Standard.Dbas.CodeTypes
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Delete Item.
|
||||
public override bool CodeCanBeDeleted (SaCode code)
|
||||
public override bool CodeCanBeDeleted(SaCode code)
|
||||
{
|
||||
ClearErrorState();
|
||||
if (!base.CodeCanBeDeleted(code)) return false;
|
||||
return true;
|
||||
}
|
||||
public override bool DeleteCode (SaCode code, DbUpdateInfo dbUpdateInfo)
|
||||
public override bool DeleteCode(SaCode code, DbUpdateInfo dbUpdateInfo)
|
||||
{
|
||||
ClearErrorState();
|
||||
using (var dbConnection = Database.CreateConnection())
|
||||
@@ -753,7 +774,7 @@ namespace Sarand.Net.Standard.Dbas.CodeTypes
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Copy data properties to and from database.
|
||||
private void PopulateTo (SaCode_Db dbCode, SaCode code, DbUpdateInfo dbUpdateInfo)
|
||||
private void PopulateTo(SaCode_Db dbCode, SaCode code, DbUpdateInfo dbUpdateInfo)
|
||||
{
|
||||
dbCode._CodeTypeId = SysId.ToInt(code.CodeTypeId);
|
||||
dbCode._Code = code.Code;
|
||||
@@ -772,7 +793,7 @@ namespace Sarand.Net.Standard.Dbas.CodeTypes
|
||||
dbCode._UpdateBy = dbUpdateInfo.UserId.ToInt();
|
||||
dbCode._UpdateHost = dbUpdateInfo.Host;
|
||||
}
|
||||
private void PopulateFrom (SaCode_Db dbCode, SaCode code)
|
||||
private void PopulateFrom(SaCode_Db dbCode, SaCode code)
|
||||
{
|
||||
//code.Id = new SysId(dbCode._Id);
|
||||
//code.CodeTypeId = new SysId(dbCode._CodeTypeId);
|
||||
@@ -800,7 +821,7 @@ namespace Sarand.Net.Standard.Dbas.CodeTypes
|
||||
alias = aliasCode;
|
||||
col.Set(caption, width, (int)dbCol, prefix + SaCodeTypeDbDfn.GetColumnName(dbCol, false), SaCodeTypeDbDfn.GetColumnNameQual(dbCol, alias), dataType, align);
|
||||
}
|
||||
public override ColumnDfn GetCodeColumnDfn (SaCode.Column columnId, string caption = "", int width = 0)
|
||||
public override ColumnDfn GetCodeColumnDfn(SaCode.Column columnId, string caption = "", int width = 0)
|
||||
{
|
||||
ColumnDfn columnDfn = new ColumnDfn((int)columnId, caption, width);
|
||||
switch (columnId)
|
||||
@@ -818,7 +839,7 @@ namespace Sarand.Net.Standard.Dbas.CodeTypes
|
||||
case SaCode.Column.CodeType_Code:
|
||||
SetCodeColDfn(columnDfn, "Code type", 80, SaCodeTypeDbDfn.ColumnIdx.SaCodeType_Code, ColumnAlignment.Center, DataValue.DataType.String, aliasCode_CodeType, colPrefixCode_CodeType);
|
||||
break;
|
||||
case SaCode.Column.CodeType_Desc:
|
||||
case SaCode.Column.CodeType_Name:
|
||||
SetCodeColDfn(columnDfn, "Code type desc", 100, SaCodeTypeDbDfn.ColumnIdx.SaCodeType_Name, ColumnAlignment.Left, DataValue.DataType.String, aliasCode_CodeType, colPrefixCode_CodeType);
|
||||
break;
|
||||
// Properties.
|
||||
@@ -886,55 +907,74 @@ namespace Sarand.Net.Standard.Dbas.CodeTypes
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Query filter.
|
||||
public override List<string> GetCodeQueryFilter (SaCode.Params prm)
|
||||
public override List<string> GetCodeQueryFilter(SaCode.Params prm)
|
||||
{
|
||||
List<String> filter = new List<String>();
|
||||
|
||||
String colId = SaCodeTypeDbDfn.GetColumnNameQual(SaCodeTypeDbDfn.ColumnIdx.SaCode_Id, aliasCode);
|
||||
String colCodeTypeId = SaCodeTypeDbDfn.GetColumnNameQual(SaCodeTypeDbDfn.ColumnIdx.SaCode_CodeTypeId, aliasCode);
|
||||
String colCode = SaCodeTypeDbDfn.GetColumnNameQual(SaCodeTypeDbDfn.ColumnIdx.SaCode_Code, aliasCode);
|
||||
String colDescription = SaCodeTypeDbDfn.GetColumnNameQual(SaCodeTypeDbDfn.ColumnIdx.SaCode_Description, aliasCode);
|
||||
String colStatus = SaCodeTypeDbDfn.GetColumnNameQual(SaCodeTypeDbDfn.ColumnIdx.SaCode_Status, aliasCode);
|
||||
String colNotes = SaCodeTypeDbDfn.GetColumnNameQual(SaCodeTypeDbDfn.ColumnIdx.SaCode_Notes, aliasCode);
|
||||
|
||||
// Force DBMS type.
|
||||
DbQuery qry = new DbQuery(Database.DbmsType);
|
||||
|
||||
// Code Id.
|
||||
String colId = SaCodeTypeDbDfn.GetColumnNameQual(SaCodeTypeDbDfn.ColumnIdx.SaCode_Id, aliasCode);
|
||||
String includedIds = prm.IncludedIds.Concat(",");
|
||||
if (!includedIds.IsEmpty())
|
||||
filter.Add(colId + " IN (" + includedIds + ")");
|
||||
String excludedIds = prm.ExcludedIds.Concat(",");
|
||||
if (!excludedIds.IsEmpty())
|
||||
filter.Add(colId + " NOT IN (" + excludedIds + ")");
|
||||
if (prm.IdsIncluded.HasValidIds())
|
||||
filter.Add($"{colId} IN ({prm.IdsIncluded.Concat(",")})");
|
||||
if (prm.IdsExcluded.HasValidIds())
|
||||
filter.Add($"{colId} NOT IN ({prm.IdsExcluded.Concat(",")})");
|
||||
|
||||
// Generic search.
|
||||
if (!StringUtil.IsBlank(prm.Search))
|
||||
{
|
||||
foreach (String search in Regex.Split(prm.Search, "[\\s,;\\-+]+"))
|
||||
{
|
||||
if (StringUtil.IsBlank(search)) continue;
|
||||
String searchForLike = DbQuery.FormatForLike(search, true);
|
||||
List<String> searchFilter = new List<string>();
|
||||
searchFilter.Add($"{colCode} LIKE '%{searchForLike}%'");
|
||||
searchFilter.Add($"{colDescription} LIKE '%{searchForLike}%'");
|
||||
searchFilter.Add($"{colNotes} LIKE '%{searchForLike}%'");
|
||||
filter.Add(searchFilter.Concat(" OR ", "(", ")"));
|
||||
}
|
||||
}
|
||||
|
||||
// Code Type.
|
||||
String colCodeTypeId = SaCodeTypeDbDfn.GetColumnNameQual(SaCodeTypeDbDfn.ColumnIdx.SaCode_CodeTypeId, aliasCode);
|
||||
if (prm.CodeTypeIds.Count > 0)
|
||||
filter.Add(colCodeTypeId + " In (" + prm.CodeTypeIds.Concat(",") + ")");
|
||||
if (prm.CodeTypeCodes.Count > 0)
|
||||
filter.Add(colCodeTypeId + " In (Select " + SaCodeTypeDbDfn.GetColumnNameQual(SaCodeTypeDbDfn.ColumnIdx.SaCodeType_Id) + " From " + TableName_CodeType + " Where " + SaCodeTypeDbDfn.GetColumnNameQual(SaCodeTypeDbDfn.ColumnIdx.SaCodeType_Code) + " In " + DbQuery.FormatForIn(prm.CodeTypeCodes, true, false) + ")");
|
||||
if (prm.CodeTypeIds.HasValidIds())
|
||||
filter.Add($"{colCodeTypeId} In ({prm.CodeTypeIds.Concat(",")})");
|
||||
if (prm.CodeTypeCodes.Any())
|
||||
filter.Add($"{colCodeTypeId} In (Select {SaCodeTypeDbDfn.GetColumnNameQual(SaCodeTypeDbDfn.ColumnIdx.SaCodeType_Id) + " From " + TableName_CodeType + " Where " + SaCodeTypeDbDfn.GetColumnNameQual(SaCodeTypeDbDfn.ColumnIdx.SaCodeType_Code)} In {DbQuery.FormatForIn(prm.CodeTypeCodes, true, false)})");
|
||||
|
||||
// Code.
|
||||
String colCode = SaCodeTypeDbDfn.GetColumnNameQual(SaCodeTypeDbDfn.ColumnIdx.SaCode_Code, aliasCode);
|
||||
if (!StringUtil.IsEmpty(prm.Code))
|
||||
filter.Add(colCode + "='" + DbQuery.FormatForCondition(prm.Code) + "'");
|
||||
else if (!StringUtil.IsEmpty(prm.CodePartial))
|
||||
filter.Add(colCode + " LIKE '%" + DbQuery.FormatForLike(prm.CodePartial) + "%'");
|
||||
if (!StringUtil.IsBlank(prm.Code))
|
||||
filter.Add($"{colCode}='{DbQuery.FormatForCondition(prm.Code)}'");
|
||||
else if (!StringUtil.IsBlank(prm.CodePartial))
|
||||
filter.Add($"{colCode} LIKE '%{DbQuery.FormatForLike(prm.CodePartial)}%'");
|
||||
|
||||
// Description.
|
||||
String colDescription = SaCodeTypeDbDfn.GetColumnNameQual(SaCodeTypeDbDfn.ColumnIdx.SaCode_Description, aliasCode);
|
||||
if (!StringUtil.IsEmpty(prm.Desc))
|
||||
filter.Add(colDescription + "='" + DbQuery.FormatForCondition(prm.Desc) + "'");
|
||||
else if (!StringUtil.IsEmpty(prm.DescPartial))
|
||||
filter.Add(colDescription + " LIKE '%" + DbQuery.FormatForLike(prm.DescPartial) + "%'");
|
||||
if (!StringUtil.IsBlank(prm.Desc))
|
||||
filter.Add($"{colDescription}='{DbQuery.FormatForCondition(prm.Desc)}'");
|
||||
else if (!StringUtil.IsBlank(prm.DescPartial))
|
||||
filter.Add($"{colDescription} LIKE '%{DbQuery.FormatForLike(prm.DescPartial)}%'");
|
||||
|
||||
// Status.
|
||||
String colStatus = SaCodeTypeDbDfn.GetColumnNameQual(SaCodeTypeDbDfn.ColumnIdx.SaCode_Status, aliasCode);
|
||||
if (prm.StatusCat == SaCode.StatusCat.ActiveOnly)
|
||||
filter.Add(colStatus + " In ('" + SacsSystem.GetStatusCode(SaCode.ActiveStatus) + "')");
|
||||
filter.Add($"{colStatus} In ('{SacsSystem.GetStatusCode(SaCode.ActiveStatus)}')");
|
||||
else if (prm.StatusCat == SaCode.StatusCat.InactiveOnly)
|
||||
filter.Add(colStatus + " Not In ('" + SacsSystem.GetStatusCode(SaCode.ActiveStatus) + "')");
|
||||
filter.Add($"{colStatus} Not In ('{SacsSystem.GetStatusCode(SaCode.ActiveStatus)}')");
|
||||
else if (prm.StatusCat == SaCode.StatusCat.NotDeleted)
|
||||
filter.Add($"{colStatus} Not In ('{SacsSystem.GetStatusCode(SaStatus.Deleted)}')");
|
||||
else if (prm.StatusCat == SaCode.StatusCat.DeletedOnly)
|
||||
filter.Add($"{colStatus} In ('{SacsSystem.GetStatusCode(SaStatus.Deleted)}')");
|
||||
|
||||
if (filter.Count < 1 && prm.IncludeDefaultFilter) filter.Add("1=1");
|
||||
return filter;
|
||||
}
|
||||
// Sort columns.
|
||||
public List<String> GetCodeSortColumns (SaCode.Params prm)
|
||||
public List<String> GetCodeSortColumns(SaCode.Params prm)
|
||||
{
|
||||
// Sort sequence.
|
||||
List<String> sortColumnNames = new List<String>();
|
||||
@@ -972,12 +1012,12 @@ namespace Sarand.Net.Standard.Dbas.CodeTypes
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Item count.
|
||||
private long GetCodeCount (String filter)
|
||||
private long GetCodeCount(String filter)
|
||||
{
|
||||
ClearErrorState();
|
||||
return Database.GetRowCount(TableName_Code + " As " + aliasCode, filter);
|
||||
}
|
||||
public override long GetCodeCount (SaCode.Params prm)
|
||||
public override long GetCodeCount(SaCode.Params prm)
|
||||
{
|
||||
ClearErrorState();
|
||||
return GetCodeCount(GetCodeQueryFilter(prm).Concat(" AND ", "(", ")"));
|
||||
@@ -985,7 +1025,7 @@ namespace Sarand.Net.Standard.Dbas.CodeTypes
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Item list.
|
||||
private DbQuery CreateCodeQuery (SaCode.Params prm)
|
||||
private DbQuery CreateCodeQuery(SaCode.Params prm)
|
||||
{
|
||||
DbQuery qry = new DbQuery(Database.DbmsType);
|
||||
qry.Tables.Add(TableName_Code, aliasCode);
|
||||
@@ -995,7 +1035,7 @@ namespace Sarand.Net.Standard.Dbas.CodeTypes
|
||||
qry.OrderBy.AddRange(GetCodeSortColumns(prm));
|
||||
return qry;
|
||||
}
|
||||
public override List<SaCode> GetCodeList (SaCode.Params prm)
|
||||
public override List<SaCode> GetCodeList(SaCode.Params prm)
|
||||
{
|
||||
ClearErrorState();
|
||||
List<SaCode> codes = new List<SaCode>();
|
||||
@@ -1022,7 +1062,7 @@ namespace Sarand.Net.Standard.Dbas.CodeTypes
|
||||
}
|
||||
return codes;
|
||||
}
|
||||
public override async Task<List<SaCode>> GetCodeListAsync (SaCode.Params prm)
|
||||
public override async Task<List<SaCode>> GetCodeListAsync(SaCode.Params prm)
|
||||
{
|
||||
List<SaCode> codes = new List<SaCode>();
|
||||
DbQuery qry = CreateCodeQuery(prm);
|
||||
@@ -1051,19 +1091,19 @@ namespace Sarand.Net.Standard.Dbas.CodeTypes
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Item query.
|
||||
public override DbResultSet ExecuteCodeQuery (List<ColumnDfn> columns, SaCode.Params prm)
|
||||
public override DbResultSet ExecuteCodeQuery(List<ColumnDfn> columns, SaCode.Params prm)
|
||||
{
|
||||
ClearErrorState();
|
||||
DbQuery query = CompileCodeQuery (columns, prm);
|
||||
DbQuery query = CompileCodeQuery(columns, prm);
|
||||
return DbResultSet_DataReader.ExecuteQuery(Database, query.BuildQuery(prm.ResultsPaging));
|
||||
}
|
||||
public override async Task<DbResultSet> ExecuteCodeQueryAsync (List<ColumnDfn> columns, SaCode.Params prm)
|
||||
public override async Task<DbResultSet> ExecuteCodeQueryAsync(List<ColumnDfn> columns, SaCode.Params prm)
|
||||
{
|
||||
ClearErrorState();
|
||||
DbQuery query = CompileCodeQuery (columns, prm);
|
||||
DbQuery query = CompileCodeQuery(columns, prm);
|
||||
return await DbResultSet_DataReader.ExecuteQueryAsync(Database, query.BuildQuery(prm.ResultsPaging));
|
||||
}
|
||||
private DbQuery CompileCodeQuery (List<ColumnDfn> columns, SaCode.Params prm)
|
||||
private DbQuery CompileCodeQuery(List<ColumnDfn> columns, SaCode.Params prm)
|
||||
{
|
||||
//---------------------------------------------------------------------
|
||||
// Construct query.
|
||||
@@ -1096,7 +1136,7 @@ namespace Sarand.Net.Standard.Dbas.CodeTypes
|
||||
|
||||
//---------------------------------------------------------------------
|
||||
// Owner item.
|
||||
if (columns.HasId((int)SaCode.Column.CodeType_Code) || columns.HasId((int)SaCode.Column.CodeType_Desc))
|
||||
if (columns.HasId((int)SaCode.Column.CodeType_Code) || columns.HasId((int)SaCode.Column.CodeType_Name))
|
||||
{
|
||||
DbQueryJoin joinItmOwn = new DbQueryJoin(DbJoinType.LeftOuter);
|
||||
joinItmOwn.Table = new StringPair(TableName_CodeType, aliasCode_CodeType);
|
||||
@@ -1109,7 +1149,7 @@ namespace Sarand.Net.Standard.Dbas.CodeTypes
|
||||
//---------------------------------------------------------------------
|
||||
// Filter and sort sequence.
|
||||
query.Filters.AddRange(GetCodeQueryFilter(prm));
|
||||
if (prm.IncludedIds.Count != 1)
|
||||
if (prm.IdsIncluded.Count != 1)
|
||||
{
|
||||
// Configure sort sequence.
|
||||
foreach (String sortColumn in GetCodeSortColumns(prm))
|
||||
|
||||
Reference in New Issue
Block a user