예제 #1
0
 public IActionResult Create(Drink drink)
 {
     if (ModelState.IsValid)
     {
         _drinkRepository.AddDrink(drink);
         return(RedirectToAction(nameof(Index)));
     }
     ViewBag.Categories = _categoryRepository.Categories;
     return(View(drink));
 }
예제 #2
0
        public IActionResult CreateDrink([FromBody] DrinkDTOForCreation drinkDTOForCreation)
        {
            var drink = _mapper.Map <Drink>(drinkDTOForCreation);

            _drinkRepository.AddDrink(drink);
            _drinkRepository.Save();

            var drinkToReturn = _mapper.Map <DrinkDTO>(drink);

            return(CreatedAtAction("GetDrinkById", new { id = drinkToReturn.Id }, drinkToReturn));
        }
예제 #3
0
 public string SaveDrink(Drink drink) //Сохранение изменений по напитку
 {
     if (drink.ID == 0)               //Если ID = 0, то напиток добавляется, иначе редактируется
     {
         Repos.AddDrink(drink);
         return(string.Format("Добавлен напиток \"{0}\"", drink.Name.Trim()));
     }
     else
     {
         Repos.EditDrink(drink);
         return(string.Format("Изменения в напитке \"{0}\" были сохранены", drink.Name.Trim()));
     }
 }
예제 #4
0
 public void AddDrink(Drink newDrink)
 {
     _repo.AddDrink(newDrink);
 }
        public async Task <IActionResult> Create(IFormCollection data, string?id)
        {
            if (!ModelState.IsValid)
            {
                return(View());
            }

            Task.Run(() =>
                     _apiService.CreateUserActivity(PerformedAction.EditOrCreateDrink, this.User.Identity.Name, id,
                                                    data["Name"]));
            var ingredients = new List <Ingredient>();

            // create ingredient objects from the from data
            foreach (var key in data.Keys)
            {
                if (key.Contains("Ingredient"))
                {
                    ingredients.Add(new Ingredient
                    {
                        Name   = data[key],
                        Amount = data["Amount" + key.Split("Ingredient")[1]]
                    });
                }
            }

            // image placeholder
            var imageUrl = "https://medifactia.com/wp-content/uploads/2018/01/placeholder.png";

            // if image data exists replace placeholder
            if (data.ContainsKey("ImageUrl") && string.IsNullOrWhiteSpace(data["ImageUrl"]) == false)
            {
                imageUrl = data["ImageUrl"];
            }

            // id that we will use for the redirect
            string redirectId;

            if (id != null)
            {
                // ID is not null, we edit
                var drinkToUpdate = await _drinkRepository.GetDrinkById(id);


                if (drinkToUpdate == null)
                {
                    // something went wrong redirect to drinks index
                    TempData["Alert"]      = _localizer["DrinkNotFound"] + ".";
                    TempData["AlertClass"] = "alert-danger";

                    return(RedirectToAction(nameof(Index)));
                }

                drinkToUpdate.Ingredients   = ingredients;
                drinkToUpdate.GlassType     = data["GlassType"];
                drinkToUpdate.Category      = data["Category"];
                drinkToUpdate.AlcoholicInfo = data["AlcoholicInfo"];
                drinkToUpdate.Instructions  = data["Instructions"];
                drinkToUpdate.Name          = data["Name"];
                drinkToUpdate.ImageUrl      = imageUrl;
                _drinkRepository.Update(drinkToUpdate);
                redirectId = id;
            }
            else
            {
                // id was null, we create a new drink
                var newDrink = new Drink
                {
                    DrinkId       = Guid.NewGuid().ToString(),
                    Ingredients   = ingredients,
                    GlassType     = data["GlassType"],
                    ImageUrl      = imageUrl,
                    DrinkReviews  = new List <DrinkReview>(),
                    Category      = data["Category"],
                    AlcoholicInfo = data["AlcoholicInfo"],
                    Instructions  = data["Instructions"],
                    Name          = data["Name"]
                };

                await _drinkRepository.AddDrink(newDrink);

                redirectId = newDrink.DrinkId;
            }

            await _drinkRepository.SaveChanges();

            return(RedirectToAction(nameof(DrinkDetails), new { id = redirectId }));
        }
예제 #6
0
 public Drink AddDrink(Drink newDrink)
 {
     return(_repo.AddDrink(newDrink));
 }