using System.Collections.Generic; using AyaNova.DataList; using AyaNova.Biz; using Newtonsoft.Json; namespace AyaNova.Models { internal sealed class DataListTableProcessingOptions : DataListProcessingBase { internal List Columns { get; set; } internal const int MaxPageSize = 1000; internal const int DefaultOffset = 0; internal const int DefaultLimit = 25; internal int? Offset { get; set; } internal int? Limit { get; set; } internal DataListTableProcessingOptions( DataListTableRequest request, IDataListProcessing dataList, DataListSavedColumnView savedView, DataListSavedFilter savedFilter, long userId, AuthorizationRoles userRoles) { //set some values from request Limit = request.Limit; Offset = request.Offset; base.ClientCriteria = request.ClientCriteria; base.DataListKey = request.DataListKey; //SET COLUMNS Columns = JsonConvert.DeserializeObject>(savedView.Columns); //SET SORTBY base.SortBy = JsonConvert.DeserializeObject>(savedView.Sort); //SET FILTER if (request.FilterId != 0) 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); // //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(); //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); */ } } }