public ActionResult Index(QuizViewModel model, QuizAction action) { long temp = 0; string answer = this.Request.Form["Answer"]; if (!string.IsNullOrEmpty(answer)) { temp = int.Parse(this.Request.Form["Answer"]); } switch (action) { case QuizAction.Submit: model.ItemNumber++; model.UserAnswer.Add(temp); this.ModelState.Remove("ItemNumber"); calculationService.Num1 = randomiserService.RanFunc(); calculationService.Num2 = randomiserService.RanFunc(); model.QuizQuestions.Add(calculationService.RandomFunction(calculationService.Num1, calculationService.Num2)); model.QuizAnswer.Add(calculationService.RandomFunctionResult(calculationService.Num1, calculationService.Num2)); return(this.View(model)); case QuizAction.Finish: for (int i = 0; i < model.QuizAnswer.Count - 1; i++) { if (model.UserAnswer[i] == model.QuizAnswer[i]) { model.CorrectAnswers += 1; } } return(this.View("Result", model)); default: throw new ArgumentOutOfRangeException(nameof(action), action, null); } }
public IActionResult QuizQuestion(QuizModel model, QuizAction action) { var newExpression = new Expression() { FirstInt = model.FirstInt, ArithmeticOperator = model.ArithmeticOperator, SecondInt = model.SecondInt, Result = model.Result, Correct = this.CheckCorrectness(model) }; model.Expressions.Add(newExpression); switch (action) { case QuizAction.Submit: model.FirstInt = this._randomService.RandInt(); model.ArithmeticOperator = this._randomService.RandOperator(); model.SecondInt = this._randomService.RandInt(); model.Result = 0; this.ModelState.Remove("FirstInt"); this.ModelState.Remove("ArithmeticOperator"); this.ModelState.Remove("SecondInt"); this.ModelState.Remove("Result"); return(this.View(model)); case QuizAction.Finish: return(this.View("QuizResult", model)); default: throw new ArgumentOutOfRangeException(nameof(action), action, null); } }