public async Task <(IEnumerable <ProductDto>, int)> GetProductsAsync( ProductFilterQuery query = null, int?pageSize = null, int?page = null) { var productRequest = new RestRequest(ApiRoutes.Product.GetAll); if (query != null) { productRequest.AddFilter(query); } if (page != null && pageSize != null) { productRequest.AddPagination(new PaginationQuery { PageSize = (int)pageSize, PageNumber = (int)page }); } var requestedProducts = _client.Execute <PagedQueryResponse <ProductDto> >(productRequest); // StringBuilder sb = new StringBuilder(); // sb.Append("\nError Msg: " + requestedProducts.ErrorMessage); // sb.Append("\nContent: " + requestedProducts.Content); // sb.Append("\nStatus Code : " + requestedProducts.StatusCode); // sb.Append("\nError Exception : " + requestedProducts.ErrorException.Message); // // File.WriteAllText("log.txt",sb.ToString()); // return(requestedProducts.Data.Data, requestedProducts.Data.FetchedItems); }
public async Task <IActionResult> GetAll( [FromQuery] ProductFilterQuery filterQuery, [FromQuery] PaginationQuery paginationQuery) { var pagination = _mapper.Map <PaginationParams>(paginationQuery); var filter = _mapper.Map <ProductFilterParams>(filterQuery); _productService.AttachOutputDevice(_outputDevice); var products = (await _productService.GetAllProductsAsync(filter, pagination)).ToArray(); var queryResult = _outputDevice.GetFilteredProductCount(); var paginationResponse = PaginationHelpers.CreatePaginatedQueryResponse(_uriGeneratorService, pagination, products, products.Length); paginationResponse.FetchedItems = queryResult.FilteredCount; paginationResponse.QueriedItems = queryResult.TotalCount; return(Ok(paginationResponse)); }