public IActionResult MeldAanVoorSessie(Gebruiker gebruiker, int sessieId, string barcode) { // de entities moeten getracked worden voor het updaten van de db Sessie trackedSessie = _sessieRepository.GetById(sessieId); Gebruiker trackedGebruiker = _gebruikerRepository.GetByGebruikersnaam(gebruiker.Gebruikersnaam); if (barcode == null) { TempData["error"] = "De gebruiker bestaat niet"; return(RedirectToAction(nameof(geOpendeSessie))); } if (trackedSessie == null) // De sessie bestaat niet { TempData["error"] = "De sessie bestaat niet"; return(RedirectToAction(nameof(Index))); } Gebruiker aanTeMeldenGebruiker = null; Regex gebregex = new Regex("[0-9]{6}[a-zA-Z]{2}"); // regex voor een gebruikersnaam Regex barregex = new Regex("[0-9]{13}"); // regex voor een barcode if (gebregex.IsMatch(barcode)) // het is een gebruikersnaam { aanTeMeldenGebruiker = _gebruikerRepository.GetByGebruikersnaam(barcode); } else if (barregex.IsMatch(barcode)) // het is een barcode { aanTeMeldenGebruiker = _gebruikerRepository.GetByBarcode(long.Parse(barcode)); } if (aanTeMeldenGebruiker == null) { TempData["error"] = "De gebruiker bestaat niet"; return(RedirectToAction(nameof(geOpendeSessie))); } try { aanTeMeldenGebruiker.ZetAanwezigVoorSessie(trackedSessie); // dit is om op te slaan in de db _sessieRepository.SaveChanges(); TempData["message"] = $"Aanmelden voor sessie '{trackedSessie.Titel}' succesvol!"; return(RedirectToAction(nameof(geOpendeSessie))); } catch (Exception e) { TempData["error"] = e.Message; return(RedirectToAction(nameof(geOpendeSessie))); } }