private IEnumerable <ProductDto> GetAllProductsMatchingQuery(GetProductsByCategoryRequest request) { var queryDtoSpec = new ProductDtoIsInCategorySpecification(request.CategoryId) .And(new ProductDtoIsInColourSpecification(request.ColourIds)) .And(new ProductDtoIsMadeByBrandSpecification(request.BrandIds)) .And(new ProductDtoIsInSizeSpecification(request.SizeIds)); IEnumerable <ProductDto> productsMatchingRefinement = _presentationRepository.FindBySpec <ProductDto>(queryDtoSpec); // TODO: Correct Sort By Logic) //switch (request.SortBy) //{ // case ProductsSortBy.PriceLowToHigh: // productsMatchingRefinement = productsMatchingRefinement.OrderBy(p => p.Price); // break; // case ProductsSortBy.PriceHighToLow: // productsMatchingRefinement = productsMatchingRefinement.OrderByDescending(p => p.Price); // break; //} return(productsMatchingRefinement); }