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; }
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)); }