Exemple #1
0
        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);
        }
Exemple #2
0
        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));
        }