示例#1
0
        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));
        }
示例#4
0
        public IActionResult AddCocktail()
        {
            var vm = new AddCocktailViewModel();

            return(View("AddCocktail", vm));
        }