コード例 #1
0
        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 }));
            }
        }