public async Task <IActionResult> PutKorisnik([FromRoute] int id, [FromBody] KorisniciFirmiEdit model) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } if (id != model.Sopstvenik.Id) { return(BadRequest()); } _context.Entry(model.Sopstvenik).State = EntityState.Modified; try { await _context.SaveChangesAsync(); IEnumerable <int> listFirmi = model.SelectedFirmi; IQueryable <FirmiSopstvenici> toBeRemoved = _context.FirmiSopstvenici.Where(s => !listFirmi.Contains(s.firmaId) && s.sopstvenikId == id); _context.FirmiSopstvenici.RemoveRange(toBeRemoved); IEnumerable <int> existFirmi = _context.FirmiSopstvenici.Where(s => listFirmi.Contains(s.firmaId) && s.sopstvenikId == id).Select(s => s.firmaId); IEnumerable <int> newFirmi = listFirmi.Where(e => !existFirmi.Contains(e)); foreach (int firmId in newFirmi) { _context.FirmiSopstvenici.Add(new FirmiSopstvenici { firmaId = firmId, sopstvenikId = id }); } await _context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!KorisnikExists(id)) { return(NotFound()); } else { throw; } } return(NoContent()); }
public async Task <IActionResult> Edit(int id, KorisniciFirmiEdit viewmodel) { if (id != viewmodel.Sopstvenik.Id) { return(NotFound()); } if (ModelState.IsValid) { try { _context.Update(viewmodel.Sopstvenik); await _context.SaveChangesAsync(); IEnumerable <int> listFirmi = viewmodel.SelectedFirmi; IQueryable <FirmiSopstvenici> toBeRemoved = _context.FirmiSopstvenici.Where(s => !listFirmi.Contains(s.firmaId) && s.sopstvenikId == id); _context.FirmiSopstvenici.RemoveRange(toBeRemoved); IEnumerable <int> existFirmi = _context.FirmiSopstvenici.Where(s => listFirmi.Contains(s.firmaId) && s.sopstvenikId == id).Select(s => s.firmaId); IEnumerable <int> newFirmi = listFirmi.Where(e => !existFirmi.Contains(e)); foreach (int firmId in newFirmi) { _context.FirmiSopstvenici.Add(new FirmiSopstvenici { firmaId = firmId, sopstvenikId = id }); } await _context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!KorisnikExists(viewmodel.Sopstvenik.Id)) { return(NotFound()); } else { throw; } } return(RedirectToAction(nameof(Index))); } return(View(viewmodel)); }
public async Task <IActionResult> Edit(int?id) { if (id == null) { return(NotFound()); } var korisnik = _context.Korisnik.Where(k => k.Id == id).Include(k => k.Firmi).First(); if (korisnik == null) { return(NotFound()); } KorisniciFirmiEdit viewmodel = new KorisniciFirmiEdit { Sopstvenik = korisnik, FirmiList = new MultiSelectList(_context.Firma.OrderBy(f => f.firmName), "Id", "firmName"), SelectedFirmi = korisnik.Firmi.Select(f => f.firmaId) }; return(View(viewmodel)); }