Пример #1
0
        public async Task<IActionResult> RemoveMealAsync(Guid dietId, Guid mealId)
        {
            RemoveDietMealCommand command = new RemoveDietMealCommand
            {
                DietId = dietId,
                DietMealId = mealId
            };

            return await CreateCommandResponse(command);
        }
Пример #2
0
        public async Task <CommandResult> Handle(RemoveDietMealCommand request, CancellationToken cancellationToken)
        {
            Diet diet = await _dietRepository.GetByIdAsync(request.DietId);

            if (!FoundValidDiet(diet))
            {
                return(FailureDueToDietNotFound());
            }

            Meal meal = diet.FindMeal(request.DietMealId);

            diet.RemoveMeal(meal);
            if (!diet.IsValid)
            {
                return(FailureDueToEntityStateInconsistency(diet));
            }

            await _mealRepository.RemoveAsync(meal);

            await _dietRepository.UpdateAsync(diet);

            return(await CommitAndPublishDefaultAsync());
        }