Exemple #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));
        }