private void UpdateCocktailProducts(string[] selectedProducts, Cocktail cocktailToUpdate) { if (selectedProducts == null) { cocktailToUpdate.cocktailProducts = new List <CocktailProduct>(); return; } var selectedProductsHS = new HashSet <string>(selectedProducts); var cocktailProducts = new HashSet <int> (cocktailToUpdate.cocktailProducts.Select(c => c.product.Id)); foreach (var product in _context.Product) { if (selectedProductsHS.Contains(product.Id.ToString())) { if (!cocktailProducts.Contains(product.Id)) { cocktailToUpdate.cocktailProducts.Add(new CocktailProduct { cocktailId = cocktailToUpdate.Id, productId = product.Id }); } } else { if (cocktailProducts.Contains(product.Id)) { CocktailProduct productToRemove = cocktailToUpdate.cocktailProducts.FirstOrDefault(i => i.productId == product.Id); _context.Remove(productToRemove); } } } }
public async Task <IActionResult> Edit(int id, [Bind("Id,unit,quantity,cocktailId,productId")] CocktailProduct cocktailProduct) { if (id != cocktailProduct.Id) { return(NotFound()); } if (ModelState.IsValid) { try { _context.Update(cocktailProduct); await _context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!CocktailProductExists(cocktailProduct.Id)) { return(NotFound()); } else { throw; } } return(RedirectToAction(nameof(Index))); } ViewData["cocktailId"] = new SelectList(_context.Cocktail, "Id", "Id", cocktailProduct.cocktailId); ViewData["productId"] = new SelectList(_context.Product, "Id", "Id", cocktailProduct.productId); return(View(cocktailProduct)); }
public async Task <IActionResult> Create([Bind("Id,unit,quantity,cocktailId,productId")] CocktailProduct cocktailProduct) { if (ModelState.IsValid) { _context.Add(cocktailProduct); await _context.SaveChangesAsync(); return(RedirectToAction(nameof(Index))); } ViewData["cocktailId"] = new SelectList(_context.Cocktail, "Id", "Id", cocktailProduct.cocktailId); ViewData["productId"] = new SelectList(_context.Product, "Id", "Id", cocktailProduct.productId); return(View(cocktailProduct)); }