public IActionResult GetAllProducts([FromQuery] ProductPagingParameters productPagingParameters) { var prodcutFromRepo = _prd.GeAllProducts(Request, productPagingParameters); var prodcutRes = prodcutFromRepo.Item1; var prodcuts = prodcutFromRepo.Item2; var metadata = new { prodcuts.TotalCount, prodcuts.PageSize, prodcuts.CurrentPage, prodcuts.TotalPages, prodcuts.HasNext, prodcuts.HasPrevious }; Response.Headers.Add("X-Pagination", JsonConvert.SerializeObject(metadata)); return(Ok(prodcutRes)); }
public (List <ProductResponse>, PagedList <Product>) GeAllProducts(HttpRequest req, ProductPagingParameters productPagingParameters) { // var listOfProducts = _context.product // .Skip((productPagingParameters.PageNumber - 1) * productPagingParameters.PageSize) //.Take(productPagingParameters.PageSize) // .ToList(); PagedList <Product> listOfProducts;; using (_context) { _context.product.Include(acc => acc.Category).ToList(); _context.product.Include(acc => acc.productDesign).ThenInclude(acc => acc.product_design_images).ThenInclude(acc => acc.ProductImage).ToList(); _context.product.Include(acc => acc.productDesign).ThenInclude(acc => acc.productColor).ToList(); _context.product.Include(acc => acc.productDesign).ThenInclude(acc => acc.productSize).ToList(); _context.product.Include(acc => acc.product_images).ToList(); _context.product.Include(acc => acc.StichingType).ToList(); _context.product.Include(acc => acc.Fabric).ToList(); _context.product.Include(acc => acc.Vendor).ToList(); listOfProducts = PagedList <Product> .ToPagedList(_context.product, productPagingParameters.PageNumber, productPagingParameters.PageSize); } List <ProductResponse> ListOfProductResponse = new List <ProductResponse>(); foreach (Product prd in listOfProducts) { ListOfProductResponse.Add(new ProductResponse(prd, req)); } return(ListOfProductResponse, listOfProducts); }