示例#1
0
        public IActionResult SpelSpelen(Groep groep, SpelViewModel svm)
        {
            if (groep.CurrentState is GroepGeblokkeerdState)
            {
                return(RedirectToAction(nameof(Feedback)));
            }

            if (ModelState.IsValid)
            {
                try
                {
                    groep.VerwerkAntwoord(svm.Groepsantwoord);
                }
                catch (DrieFoutePogingenException e)
                {
                    groep.Blokkeer();
                    _sessieRepository.SaveChanges();
                    TempData["danger"] = e.Message;
                    return(RedirectToAction(nameof(Feedback)));
                }
                catch (TijdVerstrekenException e)
                {
                    groep.Blokkeer();
                    _sessieRepository.SaveChanges();
                    TempData["danger"] = e.Message;
                    return(RedirectToAction(nameof(Feedback)));
                }
                catch (FoutAntwoordException)
                {
                    int pogingen = groep.Pad.GetCurrentOpdracht().FoutePogingen;
                    if (pogingen != 0)
                    {
                        TempData["danger"] = $"{svm.Groepsantwoord} is fout! Je hebt {pogingen} foute {(pogingen == 1 ? "poging" : "pogingen")} ondernomen.";
                    }
                    else
                    {
                        TempData["danger"] = $"{svm.Groepsantwoord} is fout!";
                    }
                }
                catch (AlleOpdrachtenVoltooidException)
                {
                }
                catch (StateException e)
                {
                    TempData["warning"] = e;
                }
                catch (Exception e)
                {
                    TempData["warning"] = e;
                }
            }

            _sessieRepository.SaveChanges();
            SpelViewModel svmMetInput = new SpelViewModel(groep)
            {
                Groepsantwoord = svm.Groepsantwoord
            };

            return(View(svmMetInput));
        }
示例#2
0
 public IActionResult BlokkeerGroep(Sessie sessie, string groepid)
 {
     try
     {
         Groep groep = sessie.Groepen.FirstOrDefault(g => g.GroepId == Int32.Parse(groepid));
         groep.Blokkeer();
         _sessieRepository.SaveChanges();
         TempData["success"] = $"Groep #{groep.GroepId} is nu geblokkeerd.";
     }
     catch (StateException e)
     {
         TempData["warning"] = e;
     }
     catch (Exception e)
     {
         TempData["warning"] = e;
     }
     return(RedirectToAction(nameof(SessieBeheren)));
 }
示例#3
0
        public IActionResult TijdVerstreken(Groep groep)
        {
            if (groep.CurrentState is GroepGeblokkeerdState)
            {
                return(RedirectToAction(nameof(Feedback)));
            }

            try
            {
                groep.Pad.GetCurrentOpdracht().ControleerGespendeerdeTijd();
            }
            catch (TijdVerstrekenException)
            {
                groep.Blokkeer();
                _sessieRepository.SaveChanges();
                TempData["danger"] = "Je tijd is verstreken.";
                return(RedirectToAction(nameof(Feedback)));
            }
            catch (StateException e)
            {
                TempData["warning"] = e;
            }
            return(RedirectToAction(nameof(SpelSpelen)));
        }