This commit is contained in:
@@ -1,15 +1,3 @@
|
|||||||
using System.Linq;
|
|
||||||
using System.Threading.Tasks;
|
|
||||||
using Microsoft.EntityFrameworkCore;
|
|
||||||
using Microsoft.AspNetCore.Mvc;
|
|
||||||
using Microsoft.AspNetCore.JsonPatch;
|
|
||||||
using EnumsNET;
|
|
||||||
using AyaNova.Util;
|
|
||||||
using AyaNova.Api.ControllerHelpers;
|
|
||||||
using AyaNova.Biz;
|
|
||||||
using AyaNova.Models;
|
|
||||||
|
|
||||||
|
|
||||||
namespace AyaNova.Biz
|
namespace AyaNova.Biz
|
||||||
{
|
{
|
||||||
|
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ namespace AyaNova.Biz
|
|||||||
// This contains all the fields that are:
|
// This contains all the fields that are:
|
||||||
// - Customizable on forms
|
// - Customizable on forms
|
||||||
// - In grid list templates
|
// - In grid list templates
|
||||||
//In addition it serves as a source for valid object keys in AvailableObjectKeys
|
//In addition it serves as a source for valid object keys in AvailableObjectKeys, and a source of database column names (tolower)
|
||||||
//
|
//
|
||||||
public static class ObjectFields
|
public static class ObjectFields
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -40,15 +40,15 @@ namespace AyaNova.Biz
|
|||||||
|
|
||||||
//BUILD WHERE AND APPEND IT
|
//BUILD WHERE AND APPEND IT
|
||||||
//qCriteria = FilterSqlCriteriaBuilder.DataFilterToSQLCriteria(TheFilter, WidgetBiz.FilterOptions(), userId);
|
//qCriteria = FilterSqlCriteriaBuilder.DataFilterToSQLCriteria(TheFilter, WidgetBiz.FilterOptions(), userId);
|
||||||
qCriteria = FilterSqlCriteriaBuilder.DataFilterToSQLCriteria(TheFilter, objectFields, userId);
|
qCriteria = SqlFilterCriteriaBuilder.DataFilterToSQLCriteria(TheFilter, objectFields, userId);
|
||||||
|
|
||||||
//BUILD ORDER BY AND APPEND IT
|
//BUILD ORDER BY AND APPEND IT
|
||||||
qSort = FilterSqlOrderByBuilder.DataFilterToSQLOrderBy(TheFilter);
|
qSort = SqlFilterOrderByBuilder.DataFilterToSQLOrderBy(TheFilter);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
//GET DEFAULT ORDER BY
|
//GET DEFAULT ORDER BY
|
||||||
qSort = FilterSqlOrderByBuilder.DefaultPickListOrderBy();
|
qSort = SqlFilterOrderByBuilder.DefaultPickListOrderBy();
|
||||||
}
|
}
|
||||||
|
|
||||||
//ITEMS
|
//ITEMS
|
||||||
|
|||||||
@@ -353,7 +353,7 @@ namespace AyaNova.Biz
|
|||||||
{
|
{
|
||||||
SearchResult SR = new SearchResult();
|
SearchResult SR = new SearchResult();
|
||||||
|
|
||||||
SR.Name = BizObjectNameFetcherDirect.Name(i, command);//THIS IS CAUSING ALL THE SLOWNESS IN RETURNING SEARCH RESULTS
|
SR.Name = BizObjectNameFetcherDirect.Name(i, command);//THIS IS CAUSING ALL THE SLOWNESS IN RETURNING SEARCH RESULTS (...much later ??? WTF??)
|
||||||
|
|
||||||
SR.Id = i.ObjectId;
|
SR.Id = i.ObjectId;
|
||||||
SR.Type = i.ObjectType;
|
SR.Type = i.ObjectType;
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ using Microsoft.Extensions.Logging;
|
|||||||
|
|
||||||
namespace AyaNova.Biz
|
namespace AyaNova.Biz
|
||||||
{
|
{
|
||||||
public static class FilterSqlCriteriaBuilder
|
public static class SqlFilterCriteriaBuilder
|
||||||
{
|
{
|
||||||
public static string DataFilterToSQLCriteria(AyaNova.Models.DataFilter dataFilter, List<ObjectField> objectFields, long userId)
|
public static string DataFilterToSQLCriteria(AyaNova.Models.DataFilter dataFilter, List<ObjectField> objectFields, long userId)
|
||||||
{
|
{
|
||||||
@@ -9,7 +9,7 @@ using Microsoft.Extensions.Logging;
|
|||||||
|
|
||||||
namespace AyaNova.Biz
|
namespace AyaNova.Biz
|
||||||
{
|
{
|
||||||
public static class FilterSqlOrderByBuilder
|
public static class SqlFilterOrderByBuilder
|
||||||
{
|
{
|
||||||
|
|
||||||
public static string DefaultGetManyOrderBy()
|
public static string DefaultGetManyOrderBy()
|
||||||
@@ -191,15 +191,15 @@ namespace AyaNova.Biz
|
|||||||
var TheFilter = await ct.DataFilter.FirstOrDefaultAsync(x => x.Id == pagingOptions.DataFilterId);
|
var TheFilter = await ct.DataFilter.FirstOrDefaultAsync(x => x.Id == pagingOptions.DataFilterId);
|
||||||
|
|
||||||
//BUILD WHERE AND APPEND IT
|
//BUILD WHERE AND APPEND IT
|
||||||
q = q + FilterSqlCriteriaBuilder.DataFilterToSQLCriteria(TheFilter, ObjectFields.ObjectFieldsList(ObjectFields.USER_KEY), UserId);
|
q = q + SqlFilterCriteriaBuilder.DataFilterToSQLCriteria(TheFilter, ObjectFields.ObjectFieldsList(ObjectFields.USER_KEY), UserId);
|
||||||
|
|
||||||
//BUILD ORDER BY AND APPEND IT
|
//BUILD ORDER BY AND APPEND IT
|
||||||
q = q + FilterSqlOrderByBuilder.DataFilterToSQLOrderBy(TheFilter);
|
q = q + SqlFilterOrderByBuilder.DataFilterToSQLOrderBy(TheFilter);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
//GET DEFAULT ORDER BY
|
//GET DEFAULT ORDER BY
|
||||||
q = q + FilterSqlOrderByBuilder.DefaultGetManyOrderBy();
|
q = q + SqlFilterOrderByBuilder.DefaultGetManyOrderBy();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -276,6 +276,11 @@ namespace AyaNova.Biz
|
|||||||
listOptions.Limit = listOptions.Limit ?? ListOptions.DefaultLimit;
|
listOptions.Limit = listOptions.Limit ?? ListOptions.DefaultLimit;
|
||||||
|
|
||||||
//BUILD THE QUERY
|
//BUILD THE QUERY
|
||||||
|
//TODO: Turn this into a raw direct query
|
||||||
|
//Build the select fragment from the template so only selected columns get fetched
|
||||||
|
//instead of projecting it onto a c# object EF style, bypass that and use a SQL data reader instead then create the result set as per the spec doc
|
||||||
|
|
||||||
|
|
||||||
//base query
|
//base query
|
||||||
var q = "SELECT *, xmin FROM AWIDGET ";
|
var q = "SELECT *, xmin FROM AWIDGET ";
|
||||||
|
|
||||||
@@ -285,15 +290,15 @@ namespace AyaNova.Biz
|
|||||||
var TheFilter = await ct.DataFilter.FirstOrDefaultAsync(x => x.Id == listOptions.DataFilterId);
|
var TheFilter = await ct.DataFilter.FirstOrDefaultAsync(x => x.Id == listOptions.DataFilterId);
|
||||||
|
|
||||||
//BUILD WHERE AND APPEND IT
|
//BUILD WHERE AND APPEND IT
|
||||||
q = q + FilterSqlCriteriaBuilder.DataFilterToSQLCriteria(TheFilter, ObjectFields.ObjectFieldsList(ObjectFields.WIDGET_KEY), UserId);
|
q = q + SqlFilterCriteriaBuilder.DataFilterToSQLCriteria(TheFilter, ObjectFields.ObjectFieldsList(ObjectFields.WIDGET_KEY), UserId);
|
||||||
|
|
||||||
//BUILD ORDER BY AND APPEND IT
|
//BUILD ORDER BY AND APPEND IT
|
||||||
q = q + FilterSqlOrderByBuilder.DataFilterToSQLOrderBy(TheFilter);
|
q = q + SqlFilterOrderByBuilder.DataFilterToSQLOrderBy(TheFilter);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
//GET DEFAULT ORDER BY
|
//GET DEFAULT ORDER BY
|
||||||
q = q + FilterSqlOrderByBuilder.DefaultGetManyOrderBy();
|
q = q + SqlFilterOrderByBuilder.DefaultGetManyOrderBy();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user