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