public async Task <IActionResult> AddCocktail(CocktailViewModel vm) { if (await _cocktailServices.CocktailWithThatNameExists(vm.Name)) { ModelState.AddModelError(string.Empty, "Cocktail with that name already exists."); return(View()); } if (vm.NewPicture != null) { using (var stream = new MemoryStream()) { await vm.NewPicture.CopyToAsync(stream); vm.Picture = stream.ToArray(); } } var cocktail = await _cocktailServices.AddAsync(vm.Name, vm.Picture); var ingredients = await _ingredientServices.GetMultipleIngredientsByNameAsync(vm.Ingredients); for (int i = 0; i < vm.Quantities.Count; i++) { await _cocktailIngredientsServices.AddAsync(cocktail, ingredients[i], vm.Quantities[i]); } foreach (var bar in vm.Bars) { var barEntity = await _barServices.GetAsync(bar); await _barCocktailServices.CreateAsync(barEntity, cocktail); } return(RedirectToAction("UpdateCocktail", new { id = cocktail.Id })); }
public async Task <IActionResult> FinalAdd(AddCocktailViewModel cocktailVM) { if (ModelState.IsValid) { var fileName = Path.Combine(hostingEnvironment.WebRootPath + "\\cocktailImages", Path.GetFileName(cocktailVM.Image.FileName)); cocktailVM.Image.CopyTo(new FileStream(fileName, FileMode.Create)); cocktailVM.ImagePath = "/cocktailImages/" + Path.GetFileName(cocktailVM.Image.FileName); var ingredientsQuantityDTO = cocktailVM.IngredientsQuantity.Select(i => i.MapToDTO()).ToList(); await cocktailServices.AddAsync(cocktailVM.Name, cocktailVM.ImagePath, ingredientsQuantityDTO); return(RedirectToAction("Index")); } ModelState.AddModelError("", "Something went wrong..."); return(View(cocktailVM)); }