protected async void saveAnsweredQuestion(StudentGetOneTestQueryResult.Question q, int enrolementId) { if (q.SelectedAnswers?.Count > 0) { foreach (StudentGetOneTestQueryResult.Answer a in q.SelectedAnswers) { EnrolementAnswer enrAnsw = new EnrolementAnswer(); enrAnsw.EnrolementId = enrolementId; enrAnsw.QuestionId = q.QuestionId; enrAnsw.AnswerId = a.AnswerId; await _enrolementAnswerRepository.CreateEnrolementAnswer(enrAnsw); } } else { EnrolementAnswer enrAnsw = new EnrolementAnswer(); enrAnsw.EnrolementId = enrolementId; enrAnsw.QuestionId = q.QuestionId; enrAnsw.Skipped = true; await _enrolementAnswerRepository.CreateEnrolementAnswer(enrAnsw); } }
protected void updateProbabilities(PossibleStatesWithPossibilities existingpossibleStatesWithPossibilities, StudentGetOneTestQueryResult.Question answeredQuestion) { List <int> realAnswersCorrect = new List <int>(); foreach (StudentGetOneTestQueryResult.Answer a in answeredQuestion.Answers) { Entities.Answer realAnswer = _answerRepository.getAnswerById(a.AnswerId); if (realAnswer.Correct) { realAnswersCorrect.Add(realAnswer.AnswerId); } } int flag = 0; foreach (StudentGetOneTestQueryResult.Answer studentsAnswer in answeredQuestion.SelectedAnswers) { if (realAnswersCorrect.Contains(studentsAnswer.AnswerId)) { flag += 1; } } if (realAnswersCorrect.Count() == flag) { foreach (Problem state in existingpossibleStatesWithPossibilities.states) { List <string> splitedTitle = state.Title.Split(" ").ToList(); if (splitedTitle.Contains(answeredQuestion.ProblemId.ToString())) { state.statePosibility = (float)(state.statePosibility * 1.3); } } } else { foreach (Problem state in existingpossibleStatesWithPossibilities.states) { List <string> splitedTitle = state.Title.Split(" ").ToList(); if (splitedTitle.Contains(answeredQuestion.ProblemId.ToString())) { state.statePosibility = (float)(state.statePosibility * 0.6); } } } }