public async Task<PagedQueries<Product>> GetAllProductsPaginatedAsync(ProductPaginationRequest request, CancellationToken ct)
        {
            request.Validate();

            request.pageIndex = request.pageIndex == 0 ? 1 : request.pageIndex;
            request.pageSize = request.pageSize == 0 ? 10 : request.pageSize;

            var pagedQueries = await _productRepository.GetAllProductsPaginatedAsync(request.pageIndex, request.pageSize, request.nameFilter, request.price, ct);

            foreach (var product in pagedQueries)
            {
                product.UrlImage = await ManagerImage.GetFileAsync(product.UrlImage);
            }

            return pagedQueries;
        }
Exemple #2
0
        public async Task <IActionResult> GetAllProductPaginated([FromBody] ProductPaginationRequest request, CancellationToken ct)
        {
            try
            {
                ct.ThrowIfCancellationRequested();

                var pagedQueries = await _productService.GetAllProductsPaginatedAsync(request, ct);

                return(Ok(new PaginationResponse <ProductResponse>
                {
                    PageIndex = pagedQueries.PageIndex,
                    TotalPages = pagedQueries.TotalPages,
                    TotalItems = pagedQueries.TotalItens,
                    Items = _mapper.Map <List <ProductResponse> >(pagedQueries)
                }));
            }
            catch (Exception ex)
            {
                return(BadRequest(ex));
            }
        }
        public async Task <ActionResult <PagedResponse <List <ProductDto> > > > GetAll([FromQuery] ProductPaginationRequest request)
        {
            var result = await Mediator.Send(request);

            if (result == null)
            {
                return(this.NotFound("No data available"));
            }

            return(Ok(result));
        }