public async Task <IActionResult> EditSopstvenik(int id, SopstvenikEditVM vm) { if (id != vm.Sopstvenik.Id) { return(NotFound()); } //if (ModelState.IsValid) //{ try { _context.Update(vm.Sopstvenik); await _context.SaveChangesAsync(); IEnumerable <int> listProdukt = vm.SelectedProducts; IQueryable <Junction> toBeRemoved = _context.Junction.Where(s => !listProdukt.Contains(s.ProduktID) && s.SopstvenikID == id); _context.Junction.RemoveRange(toBeRemoved); IEnumerable <int> existProdukts = _context.Junction.Where(s => listProdukt.Contains(s.ProduktID) && s.SopstvenikID == id).Select(s => s.ProduktID); IEnumerable <int> newProdukts = listProdukt.Where(s => !existProdukts.Contains(s)); foreach (int produktId in newProdukts) { _context.Junction.Add(new Junction { ProduktID = produktId, SopstvenikID = id }); } await _context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!SopstvenikExists(vm.Sopstvenik.Id)) { return(NotFound()); } else { throw; } } return(RedirectToAction(nameof(IndexSopstvenik))); //} // return View(vm); }
public async Task <IActionResult> EditSopstvenik(int?id) { if (id == null) { return(NotFound()); } var sopstvenik = _context.Sopstvenik.Where(m => m.Id == id).Include(m => m.Produkti).First(); if (sopstvenik == null) { return(NotFound()); } SopstvenikEditVM viewmodel = new SopstvenikEditVM { Sopstvenik = sopstvenik, ProduktList = new MultiSelectList(_context.Produkt.OrderBy(s => s.Ime), "Id", "Ime"), SelectedProducts = sopstvenik.Produkti.Select(sa => sa.ProduktID) }; return(View(viewmodel)); }