diff --git a/server/AyaNova/DataList/CustomerNoteDataList.cs b/server/AyaNova/DataList/CustomerNoteDataList.cs index df424fab..dc974da3 100644 --- a/server/AyaNova/DataList/CustomerNoteDataList.cs +++ b/server/AyaNova/DataList/CustomerNoteDataList.cs @@ -82,15 +82,15 @@ namespace AyaNova.DataList } - public List DataListInternalCriteria(long currentUserId, AuthorizationRoles userRoles, Models.DataListProcessingBase dataListBase) + public List DataListInternalCriteria(long currentUserId, AuthorizationRoles userRoles, string clientCriteria) { List ret = new List(); //ClientCriteria MUST be CustomerId - if (string.IsNullOrWhiteSpace(dataListBase.ClientCriteria)) + if (string.IsNullOrWhiteSpace(clientCriteria)) throw new System.ArgumentNullException("CustomerNoteDataList - ClientCriteria is empty, should be Customer ID"); DataListFilterOption FilterOption = new DataListFilterOption() { Column = "metacustomer" }; - FilterOption.Items.Add(new DataListColumnFilter() { value = dataListBase.ClientCriteria, op = DataListFilterComparisonOperator.Equality }); + FilterOption.Items.Add(new DataListColumnFilter() { value = clientCriteria, op = DataListFilterComparisonOperator.Equality }); ret.Add(FilterOption); return ret; diff --git a/server/AyaNova/DataList/IDataListInternalCriteria.cs b/server/AyaNova/DataList/IDataListInternalCriteria.cs index 11b0428f..c493886f 100644 --- a/server/AyaNova/DataList/IDataListInternalCriteria.cs +++ b/server/AyaNova/DataList/IDataListInternalCriteria.cs @@ -6,6 +6,6 @@ namespace AyaNova.DataList //Additional criteria for security or other reasons //hard coded into some lists (e.g. MemoDataList so users can't get other people's memos) //clientCriteria is additional criteria provided by client to list to process as it sees fit (e.g. CustomerNoteDataList requires customer id from client) - System.Collections.Generic.List DataListInternalCriteria(long currentUserId, AyaNova.Biz.AuthorizationRoles userRoles, Models.DataListProcessingBase dataListBase); + System.Collections.Generic.List DataListInternalCriteria(long currentUserId, AyaNova.Biz.AuthorizationRoles userRoles, string clientCriteria); } } \ No newline at end of file diff --git a/server/AyaNova/DataList/InsideUserDataList.cs b/server/AyaNova/DataList/InsideUserDataList.cs index 32d6c2ae..cab6b344 100644 --- a/server/AyaNova/DataList/InsideUserDataList.cs +++ b/server/AyaNova/DataList/InsideUserDataList.cs @@ -115,7 +115,7 @@ namespace AyaNova.DataList }); } - public List DataListInternalCriteria(long currentUserId, AuthorizationRoles userRoles, Models.DataListProcessingBase dataListBase) + public List DataListInternalCriteria(long currentUserId, AuthorizationRoles userRoles, string clientCriteria) { List ret = new List(); diff --git a/server/AyaNova/DataList/MemoDataList.cs b/server/AyaNova/DataList/MemoDataList.cs index cfe00db5..48233e9f 100644 --- a/server/AyaNova/DataList/MemoDataList.cs +++ b/server/AyaNova/DataList/MemoDataList.cs @@ -136,7 +136,7 @@ namespace AyaNova.DataList } - public List DataListInternalCriteria(long currentUserId, AuthorizationRoles userRoles, Models.DataListProcessingBase dataListBase) + public List DataListInternalCriteria(long currentUserId, AuthorizationRoles userRoles, string clientCriteria) { List ret = new List(); diff --git a/server/AyaNova/DataList/OutsideUserDataList.cs b/server/AyaNova/DataList/OutsideUserDataList.cs index 9787240e..7bbfe4ab 100644 --- a/server/AyaNova/DataList/OutsideUserDataList.cs +++ b/server/AyaNova/DataList/OutsideUserDataList.cs @@ -120,7 +120,7 @@ namespace AyaNova.DataList }); } - public List DataListInternalCriteria(long currentUserId, AuthorizationRoles userRoles, Models.DataListProcessingBase dataListBase) + public List DataListInternalCriteria(long currentUserId, AuthorizationRoles userRoles,string clientCriteria) { List ret = new List(); diff --git a/server/AyaNova/DataList/PartInventoryDataList.cs b/server/AyaNova/DataList/PartInventoryDataList.cs index 4d62f3d6..5a0e95f0 100644 --- a/server/AyaNova/DataList/PartInventoryDataList.cs +++ b/server/AyaNova/DataList/PartInventoryDataList.cs @@ -116,14 +116,14 @@ namespace AyaNova.DataList } - public List DataListInternalCriteria(long currentUserId, AuthorizationRoles userRoles, Models.DataListProcessingBase dataListBase) + public List DataListInternalCriteria(long currentUserId, AuthorizationRoles userRoles, string clientCriteria) { List ret = new List(); //ClientCriteria is optional for this list //Format for this list is "PARTID,WAREHOUSENAME" where the id is 0 if not filtered or the id to filter //and bizarrely the warehousename is text or empty if not filtered - var crit = (dataListBase.ClientCriteria ?? "").Split(',').Select(z => z.Trim()).ToArray(); + var crit = (clientCriteria ?? "").Split(',').Select(z => z.Trim()).ToArray(); if (crit.Length > 1) { //Part criteria diff --git a/server/AyaNova/DataList/PartInventoryTransactionsDataList.cs b/server/AyaNova/DataList/PartInventoryTransactionsDataList.cs index 05f200a9..443ad68f 100644 --- a/server/AyaNova/DataList/PartInventoryTransactionsDataList.cs +++ b/server/AyaNova/DataList/PartInventoryTransactionsDataList.cs @@ -130,14 +130,14 @@ namespace AyaNova.DataList } - public List DataListInternalCriteria(long currentUserId, AuthorizationRoles userRoles, Models.DataListProcessingBase dataListBase) + public List DataListInternalCriteria(long currentUserId, AuthorizationRoles userRoles, string clientCriteria) { List ret = new List(); //ClientCriteria is optional for this list //Format for this list is "PARTID,WAREHOUSENAME" where the id is 0 if not filtered or the id to filter //and bizarrely the warehousename is text or empty if not filtered - var crit = (dataListBase.ClientCriteria ?? "").Split(',').Select(z => z.Trim()).ToArray(); + var crit = (clientCriteria ?? "").Split(',').Select(z => z.Trim()).ToArray(); if (crit.Length > 1) { //Part criteria diff --git a/server/AyaNova/DataList/ReminderDataList.cs b/server/AyaNova/DataList/ReminderDataList.cs index 1f645c03..e070c42f 100644 --- a/server/AyaNova/DataList/ReminderDataList.cs +++ b/server/AyaNova/DataList/ReminderDataList.cs @@ -117,7 +117,7 @@ namespace AyaNova.DataList } //Ensure only current user can fetch their reminders - public List DataListInternalCriteria(long currentUserId, AuthorizationRoles userRoles, Models.DataListProcessingBase dataListBase) + public List DataListInternalCriteria(long currentUserId, AuthorizationRoles userRoles, string clientCriteria) { List ret = new List(); diff --git a/server/AyaNova/DataList/ReviewDataList.cs b/server/AyaNova/DataList/ReviewDataList.cs index 7516b3c9..37054f6b 100644 --- a/server/AyaNova/DataList/ReviewDataList.cs +++ b/server/AyaNova/DataList/ReviewDataList.cs @@ -207,7 +207,7 @@ namespace AyaNova.DataList // return "[]";//this means effectively don't process this at all // } - public List DataListInternalCriteria(long currentUserId, AuthorizationRoles userRoles, Models.DataListProcessingBase dataListBase) + public List DataListInternalCriteria(long currentUserId, AuthorizationRoles userRoles, string clientCriteria) { List ret = new List(); bool HasSupervisorRole = diff --git a/server/AyaNova/models/DataListTableProcessingOptions.cs b/server/AyaNova/models/DataListTableProcessingOptions.cs index 3aec6a23..be14e532 100644 --- a/server/AyaNova/models/DataListTableProcessingOptions.cs +++ b/server/AyaNova/models/DataListTableProcessingOptions.cs @@ -42,24 +42,24 @@ namespace AyaNova.Models //SERVER FILTER PROCESSING HERE CODE SEE DATALISTFETCHER + + List StaticServerFilterOptions = new List(); + if (dataList is IDataListInternalCriteria) + StaticServerFilterOptions = ((IDataListInternalCriteria)dataList).DataListInternalCriteria(userId, userRoles, request.ClientCriteria); /* - 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); + */ }