Пример #1
0
        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);
        }}
Пример #2
0
        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})