예제 #1
0
        public async Task <IActionResult> Detail(string examId)
        {
            if (answerRepository.IsUserLocked(User.Identity.Name))
            {
                return(NotFound("Locked"));
            }


            string language = Request.GetLanguage(config.DefaultLocalization);
            var    exam     = examRepository.GetById(examId, language);

            if (exam == null)
            {
                return(NotFound("Exam"));
            }

            if (!exam.CanOpen)
            {
                return(BadRequest("Timeout"));
            }

            if (await answerRepository.CreateMissingAnswers(User.Identity.Name, exam))
            {
                exam = examRepository.GetById(examId, language);
            }
            var examResult = ExamResult.FromEntity(exam, language);
            var answers    = await answerRepository.GetAll(User.Identity.Name, examResult.Id);

            examResult.SetScore(answers);
            return(Ok(examResult));
        }