Ejemplo n.º 1
0
        public IActionResult GiveAnswerForQuestion(int testResultId, int questionid, int questionOrderId, List <int> answerId)
        {
            System.Security.Claims.ClaimsPrincipal currentUser = this.User;
            string userId            = userIdenityManager.GetUserId(currentUser);
            bool   isNotAccessDenied = testResultManager.CheckIfTestForUserId(testResultId, userId);

            if (!isNotAccessDenied)
            {
                return(View("AccessDenied"));
            }

            bool toFinishTest = testResultManager.CheckTestResultIsClosed(testResultId);

            if (toFinishTest)
            {
                testResultManager.FinishTestResult(testResultId);
                return(RedirectToAction("ShowResult", new { @id = testResultId }));
            }
            testResultManager.SetAnswerToQuestion(testResultId, questionid, answerId);
            int questionsCount = testResultManager.GetByID(testResultId).Questions.Count;

            if (questionsCount == questionOrderId + 1)
            {
                testResultManager.FinishTestResult(testResultId);
                return(RedirectToAction("ShowResult", new { @id = testResultId }));
            }
            return(RedirectToAction("PassTestQuestion", new { @id = testResultId, @questionOrderId = questionOrderId + 1 }));
        }