From 554003b57f3509d876230c407989f639e8af8237 Mon Sep 17 00:00:00 2001 From: John Cardinal Date: Sat, 30 Jan 2021 01:03:08 +0000 Subject: [PATCH] --- .../AyaNova/Controllers/DataListController.cs | 11 ++++--- .../models/DataListTableProcessingOptions.cs | 30 +++++++++---------- 2 files changed, 22 insertions(+), 19 deletions(-) diff --git a/server/AyaNova/Controllers/DataListController.cs b/server/AyaNova/Controllers/DataListController.cs index 6f0de96c..a6ce3f1f 100644 --- a/server/AyaNova/Controllers/DataListController.cs +++ b/server/AyaNova/Controllers/DataListController.cs @@ -79,9 +79,12 @@ namespace AyaNova.Api.Controllers DataListSavedColumnViewBiz viewbiz = DataListSavedColumnViewBiz.GetBiz(ct, HttpContext); var SavedView = await viewbiz.GetAsync(UserId, tableRequest.DataListKey, true); - DataListSavedFilterBiz filterbiz = DataListSavedFilterBiz.GetBiz(ct, HttpContext); - var SavedFilter = await filterbiz.GetAsync(UserId, tableRequest.DataListKey, true); - + DataListSavedFilter SavedFilter = null; + if (tableRequest.FilterId != 0) + { + DataListSavedFilterBiz filterbiz = DataListSavedFilterBiz.GetBiz(ct, HttpContext); + SavedFilter = await filterbiz.GetAsync(tableRequest.FilterId, false); + } var DataList = DataListFactory.GetAyaDataList(tableRequest.DataListKey); if (DataList == null) return BadRequest(new ApiErrorResponse(ApiErrorCode.NOT_FOUND, "DataListKey", $"DataList \"{tableRequest.DataListKey}\" specified does not exist")); @@ -91,7 +94,7 @@ namespace AyaNova.Api.Controllers return StatusCode(403, new ApiNotAuthorizedResponse()); //hydrate the saved view and filter - DataListTableProcessingOptions dataListTableOptions = new DataListTableProcessingOptions(tableRequest, DataList, SavedView, SavedFilter,UserId, UserRoles); + DataListTableProcessingOptions dataListTableOptions = new DataListTableProcessingOptions(tableRequest, DataList, SavedView, SavedFilter, UserId, UserRoles); DataListReturnData r = await DataListFetcher.GetResponseAsync(ct, dataListTableOptions, DataList, UserRoles, log, UserId); return Ok(r); } diff --git a/server/AyaNova/models/DataListTableProcessingOptions.cs b/server/AyaNova/models/DataListTableProcessingOptions.cs index e6957017..3aec6a23 100644 --- a/server/AyaNova/models/DataListTableProcessingOptions.cs +++ b/server/AyaNova/models/DataListTableProcessingOptions.cs @@ -36,30 +36,30 @@ namespace AyaNova.Models base.SortBy = JsonConvert.DeserializeObject>(savedView.Sort); //SET FILTER - if (request.FilterId != 0) + if (request.FilterId != 0 && savedFilter != null) base.Filter = JsonConvert.DeserializeObject>(savedFilter.Filter); //SERVER FILTER PROCESSING HERE CODE SEE DATALISTFETCHER -/* - List StaticServerFilterOptions = new List(); - if (DataList is IDataListInternalCriteria) - StaticServerFilterOptions = ((IDataListInternalCriteria)DataList).DataListInternalCriteria(userId, userRoles, dataListTableOptions); + /* + List StaticServerFilterOptions = new List(); + if (DataList is IDataListInternalCriteria) + StaticServerFilterOptions = ((IDataListInternalCriteria)DataList).DataListInternalCriteria(userId, userRoles, dataListTableOptions); - // //Get the public field key names in a list from the listview - // List PublicListViewFieldList = listOptions.Columns; + // //Get the public field key names in a list from the listview + // List PublicListViewFieldList = listOptions.Columns; - //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 - var AllUniqueFieldKeysRequiredForQuery = dataListTableOptions.Columns.Union(StaticServerFilterOptions.Select(z => z.Column).ToList()).ToList(); + //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 + var AllUniqueFieldKeysRequiredForQuery = dataListTableOptions.Columns.Union(StaticServerFilterOptions.Select(z => z.Column).ToList()).ToList(); - //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 - foreach (DataListFilterOption dfo in StaticServerFilterOptions) - dataListTableOptions.Filter.Add(dfo); -*/ + //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 + foreach (DataListFilterOption dfo in StaticServerFilterOptions) + dataListTableOptions.Filter.Add(dfo); + */ }