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