Example #1
0
        public async Task <IActionResult> GetAll(
            [FromQuery] GetAllProductsQuery query,
            [FromQuery] PaginationQuery paginationQuery,
            [FromQuery] SortQuery sortQuery)
        {
            var sortingFilter    = sortingService.GetProductSortingFilters(sortQuery);
            var filter           = mapper.Map <GetAllProductsFilter>(query);
            var paginationFilter = mapper.Map <PaginationFilter>(paginationQuery);
            var productQuery     = new GetProductsQuery
            {
                Filter     = filter,
                Pagination = paginationFilter,
                Sorting    = sortingFilter
            };

            var result = await mediator.Send(productQuery).ConfigureAwait(false);

            return(Ok(paginationService.CreateProductPaginatedResponse(paginationFilter,
                                                                       filter,
                                                                       sortingFilter,
                                                                       result)));
        }