This commit is contained in:
@@ -17,7 +17,7 @@ namespace AyaNova.DataList
|
|||||||
// Get the data list data requested
|
// Get the data list data requested
|
||||||
//
|
//
|
||||||
//
|
//
|
||||||
internal static async Task<DataListReturnData> GetResponseAsync(AyContext ct, DataListTableProcessingOptions dataListTableOptions,IDataListProcessing DataList, AuthorizationRoles userRoles, ILogger log, long userId)
|
internal static async Task<DataListReturnData> GetResponseAsync(AyContext ct, DataListTableProcessingOptions dataListTableProcessingOptions,IDataListProcessing DataList, AuthorizationRoles userRoles, ILogger log, long userId)
|
||||||
{
|
{
|
||||||
|
|
||||||
// var DataList = DataListFactory.GetAyaDataList(dataListTableRequest.DataListKey);
|
// var DataList = DataListFactory.GetAyaDataList(dataListTableRequest.DataListKey);
|
||||||
@@ -26,11 +26,7 @@ namespace AyaNova.DataList
|
|||||||
// if (DataList == null)
|
// if (DataList == null)
|
||||||
// throw new System.ArgumentOutOfRangeException($"DataList \"{dataListTableRequest.DataListKey}\" specified does not exist");
|
// throw new System.ArgumentOutOfRangeException($"DataList \"{dataListTableRequest.DataListKey}\" specified does not exist");
|
||||||
|
|
||||||
|
//turn the DataListTableRequest into a DataListTableProcesingOptions object here
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
//turn the DataListTableRequest into a DataListTableProcesingOptions object here
|
|
||||||
//hydrates filter and column selections etc
|
//hydrates filter and column selections etc
|
||||||
// = new DataListTableProcessingOptions(dataListTableRequest, DataList, ct);
|
// = new DataListTableProcessingOptions(dataListTableRequest, DataList, ct);
|
||||||
|
|
||||||
@@ -48,7 +44,7 @@ namespace AyaNova.DataList
|
|||||||
|
|
||||||
//Get the combination of all unique fields from both StaticServerFilterOptions and listOptions
|
//Get the combination of all unique fields from both StaticServerFilterOptions and listOptions
|
||||||
//NOTE: this assumes no list options filter colums that don't exist in listoptions.columns
|
//NOTE: this assumes no list options filter colums that don't exist in listoptions.columns
|
||||||
var AllUniqueFieldKeysRequiredForQuery = dataListTableOptions.Columns.Union(StaticServerFilterOptions.Select(z => z.Column).ToList()).ToList();
|
// var AllUniqueFieldKeysRequiredForQuery = dataListTableOptions.Columns.Union(StaticServerFilterOptions.Select(z => z.Column).ToList()).ToList();
|
||||||
|
|
||||||
// //Add the internal filters into the listoptions existing filters
|
// //Add the internal filters into the listoptions existing filters
|
||||||
// //NOTE: There is currently no overlap between internal filtered columns and filters coming from the client
|
// //NOTE: There is currently no overlap between internal filtered columns and filters coming from the client
|
||||||
@@ -58,7 +54,7 @@ namespace AyaNova.DataList
|
|||||||
//BUILD THE QUERY
|
//BUILD THE QUERY
|
||||||
|
|
||||||
//SELECT CLAUSE
|
//SELECT CLAUSE
|
||||||
var qSelect = DataListSqlSelectBuilder.BuildForDataTableListResponse(DataList.FieldDefinitions, AllUniqueFieldKeysRequiredForQuery);
|
var qSelect = DataListSqlSelectBuilder.BuildForDataTableListResponse(DataList.FieldDefinitions, dataListTableProcessingOptions.AllUniqueColumnKeysReferenced);
|
||||||
|
|
||||||
//FROM CLAUSE
|
//FROM CLAUSE
|
||||||
var qFrom = DataList.SQLFrom;
|
var qFrom = DataList.SQLFrom;
|
||||||
@@ -67,16 +63,16 @@ namespace AyaNova.DataList
|
|||||||
var qOrderBy = string.Empty;
|
var qOrderBy = string.Empty;
|
||||||
|
|
||||||
//WHERE CLAUSE - FILTER
|
//WHERE CLAUSE - FILTER
|
||||||
qWhere = DataListSqlFilterCriteriaBuilder.DataFilterToSQLCriteria(DataList.FieldDefinitions, dataListTableOptions);
|
qWhere = DataListSqlFilterCriteriaBuilder.DataFilterToSQLCriteria(DataList.FieldDefinitions, dataListTableProcessingOptions);
|
||||||
|
|
||||||
//ORDER BY CLAUSE - SORT
|
//ORDER BY CLAUSE - SORT
|
||||||
//BUILD ORDER BY
|
//BUILD ORDER BY
|
||||||
qOrderBy = DataListSqlFilterOrderByBuilder.DataFilterToSQLOrderBy(DataList.FieldDefinitions, dataListTableOptions);
|
qOrderBy = DataListSqlFilterOrderByBuilder.DataFilterToSQLOrderBy(DataList.FieldDefinitions, dataListTableProcessingOptions);
|
||||||
|
|
||||||
//LIMIT AND OFFSET CLAUSE - PAGING
|
//LIMIT AND OFFSET CLAUSE - PAGING
|
||||||
dataListTableOptions.Offset = dataListTableOptions.Offset ?? DataListTableProcessingOptions.DefaultOffset;
|
dataListTableProcessingOptions.Offset = dataListTableProcessingOptions.Offset ?? DataListTableProcessingOptions.DefaultOffset;
|
||||||
dataListTableOptions.Limit = dataListTableOptions.Limit ?? DataListTableProcessingOptions.DefaultLimit;
|
dataListTableProcessingOptions.Limit = dataListTableProcessingOptions.Limit ?? DataListTableProcessingOptions.DefaultLimit;
|
||||||
var qLimitOffset = $"LIMIT {dataListTableOptions.Limit} OFFSET {dataListTableOptions.Offset}";
|
var qLimitOffset = $"LIMIT {dataListTableProcessingOptions.Limit} OFFSET {dataListTableProcessingOptions.Offset}";
|
||||||
|
|
||||||
//PUT IT ALL TOGETHER
|
//PUT IT ALL TOGETHER
|
||||||
string qDataQuery = string.Empty;
|
string qDataQuery = string.Empty;
|
||||||
@@ -86,7 +82,7 @@ namespace AyaNova.DataList
|
|||||||
qTotalRecordsQuery = $"SELECT COUNT(*) {qFrom} {qWhere}".Replace(" ", " ");
|
qTotalRecordsQuery = $"SELECT COUNT(*) {qFrom} {qWhere}".Replace(" ", " ");
|
||||||
|
|
||||||
//RETURN OBJECTS
|
//RETURN OBJECTS
|
||||||
int returnRowColumnCount = dataListTableOptions.Columns.Count();
|
int returnRowColumnCount = dataListTableProcessingOptions.Columns.Count();
|
||||||
List<List<DataListField>> rows = new List<List<DataListField>>();
|
List<List<DataListField>> rows = new List<List<DataListField>>();
|
||||||
long totalRecordCount = 0;
|
long totalRecordCount = 0;
|
||||||
|
|
||||||
@@ -107,7 +103,7 @@ namespace AyaNova.DataList
|
|||||||
|
|
||||||
|
|
||||||
//INSERT REMAINING FIELDS FROM TEMPLATE INTO THE RETURN ROWS LIST
|
//INSERT REMAINING FIELDS FROM TEMPLATE INTO THE RETURN ROWS LIST
|
||||||
foreach (string TemplateField in dataListTableOptions.Columns)
|
foreach (string TemplateField in dataListTableProcessingOptions.Columns)
|
||||||
{
|
{
|
||||||
|
|
||||||
//get the AyaObjectFieldDefinition
|
//get the AyaObjectFieldDefinition
|
||||||
@@ -231,7 +227,7 @@ namespace AyaNova.DataList
|
|||||||
|
|
||||||
//BUILD THE COLUMNS RETURN PROPERTY JSON FRAGMENT
|
//BUILD THE COLUMNS RETURN PROPERTY JSON FRAGMENT
|
||||||
Newtonsoft.Json.Linq.JArray ColumnsJSON = null;
|
Newtonsoft.Json.Linq.JArray ColumnsJSON = null;
|
||||||
ColumnsJSON = DataList.GenerateReturnListColumns(dataListTableOptions.Columns);
|
ColumnsJSON = DataList.GenerateReturnListColumns(dataListTableProcessingOptions.Columns);
|
||||||
return new DataListReturnData(rows, totalRecordCount, ColumnsJSON);
|
return new DataListReturnData(rows, totalRecordCount, ColumnsJSON);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user