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); }
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()); }
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!" })); }
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()); }
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()); }
public async Task <ActionResult> Update(RecipeUpdateDto command) { await CommandDispatcher.DispatchAsync(command); return(NoContent()); }