This commit is contained in:
2018-12-12 18:01:15 +00:00
parent 848b621570
commit 12dc04e11c
3 changed files with 36 additions and 21 deletions

View File

@@ -10,9 +10,10 @@ using Microsoft.Extensions.Logging;
namespace AyaNova.Biz namespace AyaNova.Biz
{ {
public static class FilterSqlOrderByBuilder public static class FilterSqlOrderByBuilder
{ {
public static string DefaultOrderBy(){ public static string DefaultOrderBy()
{
return " ORDER BY ID DESC"; return " ORDER BY ID DESC";
} }
@@ -33,29 +34,23 @@ namespace AyaNova.Biz
var SortItem = SortArray[i]; var SortItem = SortArray[i];
var fld = SortItem["fld"].Value<string>(); var fld = SortItem["fld"].Value<string>();
var opType = SortItem["op"].Value<string>(); var dir = SortItem["dir"].Value<string>();
List<string> tagList = new List<string>();
string val = string.Empty; sb.Append(" ");
if (SortItem["value"].Type != JTokenType.Array) sb.Append(fld);
val = SortItem["value"].Value<string>(); sb.Append(" ");
else sb.Append(dir == "+" ? "ASC" : "DESC");
{
tagList = SortItem["value"].ToObject<List<String>>();
}
sb.Append("(");
if (i < SortArray.Count - 1) if (i < SortArray.Count - 1)
{ {
sb.Append(") AND "); sb.Append(",");
} }
} }
return " ORDER BY " + sb.ToString() + ")"; return " ORDER BY " + sb.ToString();
} }
}//eoc }//eoc
}//ens }//ens

View File

@@ -189,7 +189,7 @@ namespace AyaNova.Biz
q = q + FilterSqlCriteriaBuilder.DataFilterToSQLCriteria(TheFilter, WidgetBiz.FilterOptions(), UserId); q = q + FilterSqlCriteriaBuilder.DataFilterToSQLCriteria(TheFilter, WidgetBiz.FilterOptions(), UserId);
//BUILD ORDER BY AND APPEND IT //BUILD ORDER BY AND APPEND IT
q = q + FilterSqlCriteriaBuilder.DataFilterToSQLCriteria(TheFilter, WidgetBiz.FilterOptions(), UserId); q = q + FilterSqlOrderByBuilder.DataFilterToSQLOrderBy(TheFilter);
//TESTING: //TESTING:
// //TODO: remove this from production build // //TODO: remove this from production build
@@ -199,16 +199,19 @@ namespace AyaNova.Biz
// log.LogInformation(TheFilter.Filter); // log.LogInformation(TheFilter.Filter);
// log.LogInformation("Generated SQL:"); // log.LogInformation("Generated SQL:");
// log.LogInformation(q); // log.LogInformation(q);
}else{ }
else
{
//GET DEFAULT ORDER BY //GET DEFAULT ORDER BY
q = q + FilterSqlOrderByBuilder.DefaultOrderBy();
} }
#pragma warning disable EF1000
#pragma warning disable EF1000
var items = await ct.Widget var items = await ct.Widget
.AsNoTracking() .AsNoTracking()

View File

@@ -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