public async Task<IActionResult> GetProducts([FromQuery] ProductParametersDto productParametersDto) {{ var productsFromRepo = await _productRepository.GetProductsAsync(productParametersDto); var paginationMetadata = new {{ totalCount = productsFromRepo.TotalCount, pageSize = productsFromRepo.PageSize, currentPageSize = productsFromRepo.CurrentPageSize, currentStartIndex = productsFromRepo.CurrentStartIndex, currentEndIndex = productsFromRepo.CurrentEndIndex, pageNumber = productsFromRepo.PageNumber, totalPages = productsFromRepo.TotalPages, hasPrevious = productsFromRepo.HasPrevious, hasNext = productsFromRepo.HasNext }}; Response.Headers.Add(" "X-Pagination" ", JsonSerializer.Serialize(paginationMetadata)); var productsDto = _mapper.Map<IEnumerable<ProductDto>>(productsFromRepo); var response = new Response<IEnumerable<ProductDto>>(productsDto); return Ok(response); }}
public async Task<PagedList<Product>> GetProductsAsync(ProductParametersDto productParameters) {{ if (productParameters == null) {{ throw new ArgumentNullException(nameof(productParameters)); }} var collection = _context.Products .Include({fkObjectName.ToLower().Substring(0, 1)} => {fkObjectName.ToLower().Substring(0, 1)}.{fkObjectName})