public async Task <IActionResult> PutEmployee([FromRoute] int id, [FromBody] VraboteniSmetkiEdit viewmodel) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } if (id != viewmodel.Vraboten.Id) { return(BadRequest()); } _context.Entry(viewmodel.Vraboten).State = EntityState.Modified; try { await _context.SaveChangesAsync(); IEnumerable <int> listSmetki = viewmodel.SelectedKompaniskiSmetki; IQueryable <EmployeeFirms> toBeRemoved = _context.EmployeeFirms.Where(e => !listSmetki.Contains(e.kompaniskaSmetkaId) && e.employeeId == id); _context.EmployeeFirms.RemoveRange(toBeRemoved); IEnumerable <int> existSmetki = _context.EmployeeFirms.Where(e => listSmetki.Contains(e.kompaniskaSmetkaId) && e.employeeId == id).Select(e => e.kompaniskaSmetkaId); IEnumerable <int> newSmetki = listSmetki.Where(s => !existSmetki.Contains(s)); foreach (int smetkaId in newSmetki) { _context.EmployeeFirms.Add(new EmployeeFirms { employeeId = id, kompaniskaSmetkaId = smetkaId }); } await _context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!EmployeeExists(id)) { return(NotFound()); } else { throw; } } return(NoContent()); }
public async Task <IActionResult> Edit(int id, VraboteniSmetkiEdit viewmodel) { if (id != viewmodel.Vraboten.Id) { return(NotFound()); } if (ModelState.IsValid) { try { _context.Update(viewmodel.Vraboten); await _context.SaveChangesAsync(); IEnumerable <int> listSmetki = viewmodel.SelectedKompaniskiSmetki; IQueryable <EmployeeFirms> toBeRemoved = _context.EmployeeFirms.Where(e => !listSmetki.Contains(e.kompaniskaSmetkaId) && e.employeeId == id); _context.EmployeeFirms.RemoveRange(toBeRemoved); IEnumerable <int> existSmetki = _context.EmployeeFirms.Where(e => listSmetki.Contains(e.kompaniskaSmetkaId) && e.employeeId == id).Select(e => e.kompaniskaSmetkaId); IEnumerable <int> newSmetki = listSmetki.Where(s => !existSmetki.Contains(s)); foreach (int smetkaId in newSmetki) { _context.EmployeeFirms.Add(new EmployeeFirms { employeeId = id, kompaniskaSmetkaId = smetkaId }); } await _context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!EmployeeExists(viewmodel.Vraboten.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 employee = _context.Employee.Where(e => e.Id == id).Include(e => e.KompaniskiSmetki).First(); if (employee == null) { return(NotFound()); } VraboteniSmetkiEdit viewmodel = new VraboteniSmetkiEdit { Vraboten = employee, SmetkiList = new MultiSelectList(_context.KompaniskaSmetka.OrderBy(k => k.bankarskiBroj), "Id", "bankarskiBroj"), SelectedKompaniskiSmetki = employee.KompaniskiSmetki.Select(s => s.kompaniskaSmetkaId) }; return(View(viewmodel)); }