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)); }