// GET: Leden/Edit/5 public async Task <IActionResult> Edit(int?id) { if (id == null) { return(NotFound()); } var viewmodel = new EditLidViewModel(); viewmodel.lid = await _context.leden.FindAsync(id); if (viewmodel.lid == null) { return(NotFound()); } viewmodel.gemeentes = new SelectList(_context.gemeenten, "gemeenteId", "naam", viewmodel.lid.gemeenteId); viewmodel.acties = _context.acties.ToList(); foreach (var actie in viewmodel.acties) { if (_context.actieleden.Any(al => al.lidId == id && al.actieId == actie.actieId)) { actie.CheckboxAnswer = true; } } return(View(viewmodel)); }
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)); }