public IActionResult MeldAanwezig(int id, string aanwezig, MeldAanwezigViewModel model) { try { Sessie sessie = _sessieRepository.GetByID(id); Gebruiker gebruiker; if (sessie.StartDatum <= DateTime.Now && sessie.StatusSessie != StatusSessie.Gesloten) { throw new SessieException("Je kan je niet meer aanmelden in deze sessie."); } if (aanwezig != null) { model.Barcode = aanwezig; } gebruiker = _gebruikerRepository.GetDeelnemerByBarcode(model.Barcode); if (sessie.geefAlleAanwezigen().Contains(gebruiker)) { TempData["message"] = gebruiker.GeefVolledigeNaam() + " is afwezig gezet!"; } else { TempData["message"] = gebruiker.GeefVolledigeNaam() + " is aanwezig gezet!"; } sessie.MeldAanwezigAfwezig(gebruiker); _sessieRepository.SaveChanges(); _gebruikerRepository.SaveChanges(); model.Barcode = null; return(View(new MeldAanwezigViewModel(sessie))); } catch (SessieException e) { TempData["Error"] = e.Message; return(RedirectToAction(nameof(Index), new { @id = id })); } catch (GeenActieveGebruikerException e) { TempData["Error"] = e.Message; return(RedirectToAction(nameof(MeldAanwezig), new { @id = id })); } catch (SchrijfInSchrijfUitException e) { TempData["Error"] = e.Message; return(RedirectToAction(nameof(MeldAanwezig), new { @id = id })); } catch (Exception e) { TempData["Error"] = "Gebruiker kon niet worden aanwezig gesteld"; return(RedirectToAction(nameof(MeldAanwezig), new { @id = id })); } }