From 12dc04e11c23be9e5f67750b4e4c719b62d7b011 Mon Sep 17 00:00:00 2001 From: John Cardinal Date: Wed, 12 Dec 2018 18:01:15 +0000 Subject: [PATCH] --- server/AyaNova/biz/FilterSqlOrderByBuilder.cs | 29 ++++++++----------- server/AyaNova/biz/WidgetBiz.cs | 11 ++++--- .../DataFilter/DataFilterOrderBy.cs | 17 +++++++++++ 3 files changed, 36 insertions(+), 21 deletions(-) create mode 100644 test/raven-integration/DataFilter/DataFilterOrderBy.cs diff --git a/server/AyaNova/biz/FilterSqlOrderByBuilder.cs b/server/AyaNova/biz/FilterSqlOrderByBuilder.cs index 08ee9de0..4aae32e9 100644 --- a/server/AyaNova/biz/FilterSqlOrderByBuilder.cs +++ b/server/AyaNova/biz/FilterSqlOrderByBuilder.cs @@ -10,9 +10,10 @@ using Microsoft.Extensions.Logging; namespace AyaNova.Biz { public static class FilterSqlOrderByBuilder - { + { - public static string DefaultOrderBy(){ + public static string DefaultOrderBy() + { return " ORDER BY ID DESC"; } @@ -33,29 +34,23 @@ namespace AyaNova.Biz var SortItem = SortArray[i]; var fld = SortItem["fld"].Value(); - var opType = SortItem["op"].Value(); - List tagList = new List(); - string val = string.Empty; - if (SortItem["value"].Type != JTokenType.Array) - val = SortItem["value"].Value(); - else - { - tagList = SortItem["value"].ToObject>(); - } + var dir = SortItem["dir"].Value(); + + sb.Append(" "); + sb.Append(fld); + sb.Append(" "); + sb.Append(dir == "+" ? "ASC" : "DESC"); - - sb.Append("("); - if (i < SortArray.Count - 1) { - sb.Append(") AND "); + sb.Append(","); } } - return " ORDER BY " + sb.ToString() + ")"; + return " ORDER BY " + sb.ToString(); } - + }//eoc }//ens diff --git a/server/AyaNova/biz/WidgetBiz.cs b/server/AyaNova/biz/WidgetBiz.cs index 0f0a0a72..c2207f95 100644 --- a/server/AyaNova/biz/WidgetBiz.cs +++ b/server/AyaNova/biz/WidgetBiz.cs @@ -189,7 +189,7 @@ namespace AyaNova.Biz q = q + FilterSqlCriteriaBuilder.DataFilterToSQLCriteria(TheFilter, WidgetBiz.FilterOptions(), UserId); //BUILD ORDER BY AND APPEND IT - q = q + FilterSqlCriteriaBuilder.DataFilterToSQLCriteria(TheFilter, WidgetBiz.FilterOptions(), UserId); + q = q + FilterSqlOrderByBuilder.DataFilterToSQLOrderBy(TheFilter); //TESTING: // //TODO: remove this from production build @@ -199,16 +199,19 @@ namespace AyaNova.Biz // log.LogInformation(TheFilter.Filter); // log.LogInformation("Generated SQL:"); // log.LogInformation(q); - }else{ + } + else + { //GET DEFAULT ORDER BY + q = q + FilterSqlOrderByBuilder.DefaultOrderBy(); } - -#pragma warning disable EF1000 + +#pragma warning disable EF1000 var items = await ct.Widget .AsNoTracking() diff --git a/test/raven-integration/DataFilter/DataFilterOrderBy.cs b/test/raven-integration/DataFilter/DataFilterOrderBy.cs new file mode 100644 index 00000000..b567e0be --- /dev/null +++ b/test/raven-integration/DataFilter/DataFilterOrderBy.cs @@ -0,0 +1,17 @@ +using System; +using Xunit; +using Newtonsoft.Json.Linq; +using FluentAssertions; +using System.Collections.Generic; +using System.Collections.Concurrent; + +namespace raven_integration +{ + + + public class DataFilterOrderBy + { + + + }//eoc +}//eons