public ListResult <PreShippingIndexViewModel> ReadOutputPreShipping(int page, int size, string filter, string order, string keyword) { var query = _outputRepository.ReadAll().Where(s => s.DestinationArea == DyeingPrintingArea.SHIPPING && !s.HasNextAreaDocument); List <string> SearchAttributes = new List <string>() { "BonNo" }; query = QueryHelper <DyeingPrintingAreaOutputModel> .Search(query, SearchAttributes, keyword); Dictionary <string, object> FilterDictionary = JsonConvert.DeserializeObject <Dictionary <string, object> >(filter); query = QueryHelper <DyeingPrintingAreaOutputModel> .Filter(query, FilterDictionary); Dictionary <string, string> OrderDictionary = JsonConvert.DeserializeObject <Dictionary <string, string> >(order); query = QueryHelper <DyeingPrintingAreaOutputModel> .Order(query, OrderDictionary); var data = query.Skip((page - 1) * size).Take(size).Select(s => new PreShippingIndexViewModel() { Area = s.Area, BonNo = s.BonNo, Date = s.Date, Id = s.Id, Shift = s.Shift, DestinationArea = s.DestinationArea, HasNextAreaDocument = s.HasNextAreaDocument }); return(new ListResult <PreShippingIndexViewModel>(data.ToList(), page, size, query.Count())); }