public HttpResponseMessage SearchByPagination(PageSearchDetails pageDetails)
 {
     try
     {
         return(Request.CreateResponse(HttpStatusCode.OK, productService.SearchByPage(pageDetails)));
     }
     catch (Exception e)
     {
         Console.Write(e);
         return(Request.CreateResponse(HttpStatusCode.InternalServerError, e));
     }
 }
        public Page <Product> FindByPage(PageSearchDetails pageDetails)
        {
            Page <Product>  products;
            Sorts <Product> sorts = SetSorts(pageDetails.SortByField, pageDetails.IsAscOrder);

            var    filters    = new Filters <Product>();
            string field      = pageDetails.Field;
            string searchText = pageDetails.SearchText;

            filters.Add(field.Equals("Code") && !string.IsNullOrEmpty(searchText), x => x.Code.Contains(searchText));
            filters.Add(field.Equals("Name") && !string.IsNullOrEmpty(searchText), x => x.Name.Contains(searchText));
            filters.Add(field.Equals("Mark") && !string.IsNullOrEmpty(searchText), x => x.Mark.Contains(searchText));
            filters.Add(field.Equals("Model") && !string.IsNullOrEmpty(searchText), x => x.Model.Contains(searchText));

            products = dbContext.Products.Paginate(pageDetails.PageNumber, pageDetails.PageSize, sorts, filters);

            return(products);
        }
 public Page <Product> SearchByPage(PageSearchDetails pageDetails)
 {
     return(productRepository.FindByPage(pageDetails));
 }