public async Task <DishPreviewResponse> GetDishesInfoAsync(GetDishRequest getDish) { IEnumerable <Dish> dishes = null; switch (getDish.SortingCriteria) { case null: dishes = await _unitOfWork.Dishes.GetDishesWithIngredientsCategoriesAndRatingsAsync(getDish.Skip, getDish.Take); break; case SortingCriteria.Calories: dishes = await _unitOfWork.Dishes.GetSortedDishesAsync( d => d.Calories, getDish.IsAscending, getDish.Skip, getDish.Take); break; case SortingCriteria.Time: dishes = await _unitOfWork.Dishes.GetSortedDishesAsync( d => d.Time, getDish.IsAscending, getDish.Skip, getDish.Take); break; } var dishPrewiews = dishes.Select(_mapper.Map <Dish, DishPreviewDto>) .ToArray(); return(new DishPreviewResponse() { Dishes = dishPrewiews, Count = await _unitOfWork.Dishes.CountAsync() }); }
public async Task <IActionResult> GetDishesInfo([FromQuery] GetDishRequest getDishRequest) { return(Ok(await _dishService.GetDishesInfoAsync(getDishRequest))); }