Ejemplo n.º 1
0
        public void UpdateRecipe(Recipe recipe, RecipeUpdateDto recipeUpdateDto, int UserLoginId)
        {
            var model = recipe;

            _context.TryUpdateManyToMany(model.RecipeIngredients, recipeUpdateDto.RecipeIngredients
                                         .Select(x => new RecipeIngredients
            {
                Amount       = x.Amount,
                IngredientId = x.Ingredient.IngredientId,
                RecipeId     = recipeUpdateDto.Recipe.RecipeId,
            }), x => x.IngredientId);

            foreach (var item in recipeUpdateDto.RecipeIngredients)
            {
                // Update the Amount of the ingredient in the bridge table RecipeIngredients
                var recipeIngredient = _context.RecipeIngredients.FirstOrDefault(x => x.IngredientId == item.Ingredient.IngredientId && x.RecipeId == recipe.RecipeId);
                if (recipeIngredient != null)
                {
                    recipeIngredient.Amount = item.Amount;
                }
            }

            recipe.Title       = recipeUpdateDto.Title;
            recipe.Slug        = recipeUpdateDto.Slug;
            recipe.Description = recipeUpdateDto.Description;
            recipe.Category    = recipeUpdateDto.Category;

            // Attach the recipe to the user.
            var userRow = _context.Users.FirstOrDefault(x => x.UserInformationId == UserLoginId);

            userRow.Recipes.Add(recipe);
        }
Ejemplo n.º 2
0
        public ActionResult UpdateRecipe(int id, RecipeUpdateDto recipeUpdateDto)
        {
            var recipeModelFromRepo = _repository.GetRecipeById(id);

            if (recipeModelFromRepo == null)
            {
                return(NotFound());
            }
            _mapper.Map(recipeUpdateDto, recipeModelFromRepo);
            _repository.UpdateRecipe(recipeModelFromRepo);
            _repository.SaveChanges();
            return(NoContent());
        }
Ejemplo n.º 3
0
        public async Task <IActionResult> UpdateRecipeByIdPut(int id, RecipeUpdateDto updatedRecipeData)
        {
            var recipeFromRepo = await _repository.GetRecipeById(id);

            if (recipeFromRepo == null)
            {
                return(StatusCode(404, new { status = "not found", statusCode = 404, message = $"Recipe with id {id} is not found!" }));
            }

            _mapper.Map(updatedRecipeData, recipeFromRepo);
            _repository.UpdateRecipe(recipeFromRepo);
            await _repository.SaveChanges();

            return(StatusCode(200, new { status = "success", statusCode = 200, message = $"Recipe with id {id} is successfully updated with PUT method!" }));
        }
Ejemplo n.º 4
0
        public ActionResult UpdateRecipe(Guid id, RecipeUpdateDto recipeUpdateDto)
        {
            var userLoginId = HttpContext.GetUserLoginId();
            var recipeItem  = _baseRepo.recipe.GetRecipeById(id);

            if (recipeItem == null)
            {
                return(NotFound());
            }

            recipeUpdateDto.RecipeId = id;
            recipeUpdateDto.Recipe   = _mapper.Map <RecipeReadDto>(recipeItem);

            _baseRepo.recipe.UpdateRecipe(recipeItem, recipeUpdateDto, userLoginId);
            _baseRepo.SaveChanges();

            return(NoContent());
        }
Ejemplo n.º 5
0
        public async Task <IActionResult> UpdateAsync([FromRoute(Name = "id")] Guid id, [FromBody] RecipeUpdateDto dto)
        {
            var recipe = await _recipeRepository.GetByIdAsync(id);

            if (recipe == null)
            {
                return(BadRequest("Não conseguimos encontrar a receita"));
            }

            if (!string.IsNullOrEmpty(dto.Description))
            {
                recipe.AlterarDescricao(dto.Description);
            }

            if (!string.IsNullOrWhiteSpace(dto.Title))
            {
                recipe.AlterarTitle(dto.Title);
            }

            await _recipeRepository.UpdateAsync(recipe);

            return(NoContent());
        }
Ejemplo n.º 6
0
        public async Task <ActionResult> Update(RecipeUpdateDto command)
        {
            await CommandDispatcher.DispatchAsync(command);

            return(NoContent());
        }