예제 #1
0
        public async Task <Result <FoodDto> > EditFoodAsync(int foodId, FoodForUpdateDto food)
        {
            var isFoodExists = await IsFoodExistsAsync(foodId);

            if (!isFoodExists)
            {
                return(Result <FoodDto> .Failure(new List <string> {
                    string.Format(FoodsConstants.UnexistingFoodById, foodId)
                }));
            }

            var foodFromDb = await context
                             .Foods
                             .Include(x => x.FoodCategory)
                             .FirstOrDefaultAsync(food => food.Id == foodId);

            var updatedFood = food
                              .MapTo <FoodForUpdateDto, Food>(foodFromDb);

            await context
            .SaveChangesAsync();

            var foodToReturn = updatedFood
                               .MapTo <FoodDto>();

            return(Result <FoodDto> .SuccessWith(foodToReturn));
        }