public async Task <IActionResult> Edit(int id, EditLidViewModel viewmodel) { if (id != viewmodel.lid.lidId) { return(NotFound()); } if (ModelState.IsValid) { try { _context.Update(viewmodel.lid); await _context.SaveChangesAsync(); var currentActieLeden = _context.actieleden.Where(al => al.lidId == viewmodel.lid.lidId).ToList(); for (int i = 0; i < viewmodel.acties.Count; i++) { if (viewmodel.acties[i].CheckboxAnswer == true) { if (!currentActieLeden.Any(al => al.actieId == viewmodel.acties[i].actieId && al.lidId == viewmodel.lid.lidId)) { _context.Add(new ActieLid() { actieId = viewmodel.acties[i].actieId, lidId = viewmodel.lid.lidId }); } } if (viewmodel.acties[i].CheckboxAnswer == false) { if (currentActieLeden.Any(al => al.actieId == viewmodel.acties[i].actieId && al.lidId == viewmodel.lid.lidId)) { _context.Remove(currentActieLeden.FirstOrDefault(al => al.actieId == viewmodel.acties[i].actieId && al.lidId == viewmodel.lid.lidId)); } } } viewmodel.gemeentes = new SelectList(_context.gemeenten, "gemeenteId", "naam", viewmodel.lid.gemeenteId); await _context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!LidExists(viewmodel.lid.lidId)) { return(NotFound()); } else { throw; } } return(RedirectToAction(nameof(Index))); } return(View(viewmodel)); }
public async Task <IActionResult> Edit(int id, EditGemeenteViewModel viewmodel) { if (id != viewmodel.gemeente.gemeenteId) { return(NotFound()); } if (ModelState.IsValid) { try { viewmodel.gemeente.leden = new List <Lid>(); foreach (Lid lid in viewmodel.leden) { if (lid.CheckboxAnswer == true) { lid.gemeenteId = id; viewmodel.gemeente.leden.Add(lid); } } viewmodel.gemeente.acties = new List <Actie>(); foreach (Actie actie in viewmodel.acties) { if (actie.CheckboxAnswer == true) { actie.gemeenteId = id; viewmodel.gemeente.acties.Add(actie); } } _context.Update(viewmodel.gemeente); await _context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!GemeenteExists(viewmodel.gemeente.gemeenteId)) { return(NotFound()); } else { throw; } } return(RedirectToAction(nameof(Index))); } return(View(viewmodel)); }