Ejemplo n.º 1
0
        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)));
 }