示例#1
0
        /// <summary>
        /// Controleert of het groepsantwoord juist is
        /// </summary>
        /// <param name="padId">Id van het huidige pad</param>
        /// <param name="groepsAntwoord">Het opgegeven antwoord als oplossing voor de huidige opdracht</param>
        /// <returns>
        ///     RedirectToAction Index
        ///     NotFoundResult indien er geen Pad wordt gevonden met meegegeven id
        /// </returns>
        public IActionResult BeantwoordVraag(int padId, string groepsAntwoord)
        {
            Pad pad = _padRepository.GetById(padId);

            if (pad == null)
            {
                return(NotFound());
            }

            if (groepsAntwoord == null || groepsAntwoord.Trim().Length == 0)
            {
                TempData["error"] = "Geef een antwoord in!";
            }
            else
            {
                try {
                    PadOpdracht huidig = pad.HuidigeOpdracht;
                    if (pad.ControleerAntwoord(int.Parse(groepsAntwoord)))
                    {
                        TempData["message"] = "Juist antwoord, goed zo!";
                    }
                    else
                    {
                        TempData["error"] = $"{groepsAntwoord} is fout!";
                    }
                    _padRepository.SaveChanges();
                } catch (InvalidOperationException e) {
                    TempData["error"] = e.Message;
                } catch (FormatException) {
                    TempData["error"] = "Je moet een getal invullen!";
                }
            }

            return(RedirectToAction(nameof(Index), new { padId }));
        }
 public override void OnActionExecuted(ActionExecutedContext context)
 {
     _padRepository.SaveChanges();
     base.OnActionExecuted(context);
 }