Ejemplo n.º 1
0
        public async Task <CommandResult> Handle(RemoveMealFoodCommand request, CancellationToken cancellationToken)
        {
            Meal meal = await _mealRepository.GetByIdAsync(request.MealId);

            if (!FoundValidMeal(meal))
            {
                return(FailureDueToMealNotFound());
            }

            MealFood mealFood = meal.FindMealFood(request.MealFoodId);

            meal.RemoveMealFood(mealFood);
            if (!mealFood.IsValid)
            {
                return(FailureDueToEntityStateInconsistency(meal));
            }

            await _mealRepository.UpdateAsync(meal);

            return(await CommitAndPublishAsync(new MealFoodRemovedDomainEvent(
                                                   meal.Id,
                                                   meal.DietId,
                                                   mealFood.FoodId
                                                   )));
        }
Ejemplo n.º 2
0
        public async Task <IActionResult> RemoveMealAsync(Guid mealId, Guid mealFoodId)
        {
            RemoveMealFoodCommand command = new RemoveMealFoodCommand
            {
                MealId     = mealId,
                MealFoodId = mealFoodId,
            };

            return(await CreateCommandResponse(command));
        }