internal override void ProcessQuestion(bool isNewQuestion) { if (isNewQuestion) { if (_index == _questIds.Count - 1) { _index = -1; } _index++; } try { int qId = _questIds[_index]; AppealResult appeal = TestClient.GetQuestionAppeal(_statistics.TestSessionId, qId, true); var htmlStore = HtmlStore.GetHtmlStore(appeal.TestorData, qId); htmlStore.IsAppeal = true; htmlStore.AppealIsRight = appeal.IsRightAnswer; htmlStore.Answer = appeal.Answer; _currentQuestion = htmlStore; } catch (Exception ex) { SystemMessage.ShowErrorMessage(ex); } }
public AppealResult GetQuestionAppeal(int sessionId, int questId, bool getBLOBs) { Debug.Assert(sessionId > 0); Debug.Assert(questId > 0); AppealResult retValue = new AppealResult(); using (DataClassesTestorCoreDataContext dataContext = new DataClassesTestorCoreDataContext(TestorSecurityProvider.ConnectionString)) { var session = dataContext.TestSessions.Where(c => c.TestSessionId == sessionId).First(); if (session.UserId != Provider.CurrentUser.UserId || session.CoreTest.ShowDetailsTestResult != true) { Provider.TestRoles(TestorUserRole.Administrator, TestorUserRole.Teacher, TestorUserRole.Laboratorian); } var quest = session.TestSessionQuestions.Where(c => c.QuestionId == questId).FirstOrDefault(); if (quest == null) { return(null); } retValue.TestorData = GetQuestion(questId, true, true, getBLOBs); retValue.Answer = quest.Answer; retValue.IsRightAnswer = quest.IsRightAnswer.HasValue ? quest.IsRightAnswer.Value : false; } return(retValue); }