This commit is contained in:
2020-01-23 16:37:17 +00:00
parent cc707be72e
commit a3a62dd55a
2 changed files with 16 additions and 4 deletions

View File

@@ -85,7 +85,7 @@ namespace AyaNova.DataList
qWhere = DataListSqlFilterCriteriaBuilder.DataFilterToSQLCriteria(DataList.FieldDefinitions, TheFilter, DataList.FieldDefinitions, UserId);
//ORDER BY CLAUSE - SORT
//BUILD ORDER BY AND APPEND IT
qOrderBy = DataListSqlFilterOrderByBuilder.DataFilterToSQLOrderBy(TheFilter);
qOrderBy = DataListSqlFilterOrderByBuilder.DataFilterToSQLOrderBy(DataList.FieldDefinitions, TheFilter);
}
//LIMIT AND OFFSET CLAUSE - PAGING

View File

@@ -1,5 +1,7 @@
using System.Text;
using System.Linq;
using Newtonsoft.Json.Linq;
using System.Collections.Generic;
namespace AyaNova.DataList
{
@@ -10,7 +12,7 @@ namespace AyaNova.DataList
// public static string DefaultPickListOrderBy => "ORDER BY NAME ASC";
public static string DataFilterToSQLOrderBy(AyaNova.Models.DataListFilter dataFilter)
public static string DataFilterToSQLOrderBy(List<AyaDataListFieldDefinition> objectFieldsList, AyaNova.Models.DataListFilter dataFilter)
{
if (string.IsNullOrWhiteSpace(dataFilter.Sort))
@@ -28,9 +30,19 @@ namespace AyaNova.DataList
var SortItem = SortArray[i];
var fld = SortItem["fld"].Value<string>();
var dir = SortItem["dir"].Value<string>();
//Get the correct sql column name
AyaDataListFieldDefinition DataListField = objectFieldsList.FirstOrDefault(x => x.FieldKey == fld);
#if (DEBUG)
//Developers little helper
if (DataListField == null)
{
throw new System.ArgumentNullException($"DEV ERROR in DataListSqlFilterOrderByBuilder.cs: field {fld} specified in template was NOT found in ObjectFields list");
}
#endif
var SQLValueColumnName = DataListField.GetSqlValueColumnName();
sb.Append(" ");
sb.Append(fld);
sb.Append(SQLValueColumnName);
sb.Append(" ");
sb.Append(dir == "+" ? "ASC" : "DESC");