From f41d89facdd85f7c261a14398d5965188c225d4d Mon Sep 17 00:00:00 2001 From: John Cardinal Date: Tue, 11 Feb 2020 20:11:06 +0000 Subject: [PATCH] --- server/AyaNova/DataList/DataListFetcher.cs | 7 +++++-- .../DataList/DataListSqlFilterOrderByBuilder.cs | 11 +++++++---- 2 files changed, 12 insertions(+), 6 deletions(-) diff --git a/server/AyaNova/DataList/DataListFetcher.cs b/server/AyaNova/DataList/DataListFetcher.cs index db6c53f0..92e309ac 100644 --- a/server/AyaNova/DataList/DataListFetcher.cs +++ b/server/AyaNova/DataList/DataListFetcher.cs @@ -84,8 +84,11 @@ namespace AyaNova.DataList //WHERE CLAUSE - FILTER qWhere = DataListSqlFilterCriteriaBuilder.DataFilterToSQLCriteria(DataList.FieldDefinitions, TheFilter, DataList.FieldDefinitions, UserId); //ORDER BY CLAUSE - SORT - //BUILD ORDER BY AND APPEND IT + //BUILD ORDER BY qOrderBy = DataListSqlFilterOrderByBuilder.DataFilterToSQLOrderBy(DataList.FieldDefinitions, TheFilter); + }else{ + //BUILD DEFAULT ORDER BY IF POSSIBLE + qOrderBy = DataListSqlFilterOrderByBuilder.DataFilterToSQLOrderBy(DataList.FieldDefinitions, null); } //LIMIT AND OFFSET CLAUSE - PAGING @@ -103,7 +106,7 @@ namespace AyaNova.DataList } else { - qDataQuery = $"{qSelectColumns} {qFrom} {qLimitOffset}"; + qDataQuery = $"{qSelectColumns} {qFrom} {qOrderBy} {qLimitOffset}"; qTotalRecordsQuery = $"SELECT COUNT(*) {qFrom}"; } diff --git a/server/AyaNova/DataList/DataListSqlFilterOrderByBuilder.cs b/server/AyaNova/DataList/DataListSqlFilterOrderByBuilder.cs index 3593796d..1f591701 100644 --- a/server/AyaNova/DataList/DataListSqlFilterOrderByBuilder.cs +++ b/server/AyaNova/DataList/DataListSqlFilterOrderByBuilder.cs @@ -15,16 +15,19 @@ namespace AyaNova.DataList public static string DataFilterToSQLOrderBy(List objectFieldsList, AyaNova.Models.DataListFilter dataFilter) { - if (string.IsNullOrWhiteSpace(dataFilter.Sort)) + if (dataFilter == null || string.IsNullOrWhiteSpace(dataFilter.Sort)) { //sort by default field descending which should in theory always be the id column of the main object in the list //which should return the results to user with most recent records at the top if no sort order was specified - if(objectFieldsList[0].FieldKey=="df"){ + if (objectFieldsList[0].FieldKey == "df") + { return $"ORDER BY {objectFieldsList[0].SqlIdColumnName} DESC"; - }else{ + } + else + { //no default column so no idea how to sort return string.Empty; - } + } } StringBuilder sb = new StringBuilder();