This commit is contained in:
@@ -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
|
||||||
|
|||||||
@@ -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()
|
||||||
|
|||||||
17
test/raven-integration/DataFilter/DataFilterOrderBy.cs
Normal file
17
test/raven-integration/DataFilter/DataFilterOrderBy.cs
Normal 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
|
||||||
Reference in New Issue
Block a user