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()));
        }