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