public async Task <IActionResult> AddCocktail(AddCocktailViewModel model, IFormFile file) { if (!String.IsNullOrWhiteSpace(model.MainIngString)) { model.MainIngredients = model.MainIngString.Split(',').ToList(); } else { return(View("AddCocktail", model)); } if (!this.ModelState.IsValid || model.MainIngredients.All(p => String.IsNullOrWhiteSpace(p)) || file == null) { return(View("AddCocktail", model)); } byte[] cocktailPhoto; using (var stream = new MemoryStream()) { await file.CopyToAsync(stream); cocktailPhoto = stream.ToArray(); } await cocktailService.CreateCocktailAsync(model.Name, model.Description, model.MainIngredients.ToArray(), model.IngString == null?null : model.IngString.Split(','), cocktailPhoto); return(RedirectToAction("Manage")); }
public async Task <IActionResult> Add([FromQuery] AddCocktailViewModel cocktailVM) { if (cocktailVM.CocktilIngredients == null) { var ingredients = await ingredientServices.GetAllDTOAsync(); cocktailVM.AllIngredients = ingredients.Select(b => new SelectListItem($"{b.Name}, {b.Unit}", $"{b.Name}, {b.Unit}")).ToList(); return(View(cocktailVM)); } if (await cocktailServices.DoesNameExist(cocktailVM.Name)) { cocktailVM.Name = null; cocktailVM.CocktilIngredients = null; TempData["Status"] = "Cocktail with such name alredy exists."; return(View(cocktailVM)); } foreach (var ingr in cocktailVM.CocktilIngredients) { cocktailVM.IngredientsQuantity.Add(new CocktailIngredientViewModel { Name = ingr, Value = 0 }); } return(View(cocktailVM)); }
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)); }
public IActionResult AddCocktail() { var vm = new AddCocktailViewModel(); return(View("AddCocktail", vm)); }