Пример #1
0
        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));
        }