public ActionResult UpdateDish(Guid id, UpdateDishDto dishDto) { var existingDish = _context.GetDish(id); if (existingDish is null) { return(NotFound()); } Dish updatedDish = existingDish with { Name = dishDto.Name, Price = dishDto.Price, Toppings = dishDto.Toppings, }; _context.UpdateDish(updatedDish); return(NoContent()); }
public async Task <IActionResult> UpdateDish([FromRoute] int id, [FromForm] UpdateDishDto updateDish) { return(Ok(await _dishService.UpdateDishAsync(id, updateDish))); }
public async Task <DishDto> UpdateDishAsync(int id, UpdateDishDto updateDish) { var currentDish = await _unitOfWork.Dishes.GetByNameAsync(updateDish.Name); if (currentDish != null && !currentDish.Name.Equals(updateDish.Name)) { ExceptionHandler.DublicateObject(nameof(Dish), nameof(Dish.Name)); } var dishEntity = await _unitOfWork.Dishes.FindAsync(id); _mapper.Map(updateDish, dishEntity); dishEntity.Images = new List <Image>(); if (updateDish.ImageUrls != null) { dishEntity.Images.AddRange( updateDish.ImageUrls .Select(img => new Image { Priority = img.Priority, DishId = dishEntity.Id, Url = img.Url }) .ToList()); } if (updateDish.ImageFiles != null) { foreach (var img in updateDish.ImageFiles) { dishEntity.Images.Add( new Image { Priority = img.Priority, DishId = dishEntity.Id, Url = await _imageService.UploadImageAsync(img.File) }); } } var dishIngredients = updateDish.Ingredients .Zip(updateDish.IngredientAmounts, (i, a) => new { IngredientId = i, Amount = a }) .Select( x => new DishIngredient { DishId = dishEntity.Id, IngredientId = x.IngredientId, Amount = x.Amount }) .ToList(); dishEntity.DishIngredients = dishIngredients; var dishCategories = updateDish.Categories.Select( x => new DishCategory { CategoryId = x, DishId = dishEntity.Id }) .ToList(); dishEntity.DishCategories = dishCategories; await _unitOfWork.CommitAsync(); return(_mapper.Map <Dish, DishDto>(await _unitOfWork.Dishes.FindAsync(id))); }