Exemplo n.º 1
0
        public FinishedPoolVue EvaluatePool(PoolVue poolVue)
        {
            List <AnsweredQuestionVue> answeredQuestionVues = new List <AnsweredQuestionVue>();

            Pool pool = new Pool()
            {
                SubmitDate = DateTime.Now,
                Submiter   = poolVue.Name
            };

            foreach (var q in poolVue.Questions)
            {
                Question     question     = unitOfWork.QuestionRepository.GetByID(q.Id);
                PoolQuestion poolQuestion = new PoolQuestion()
                {
                    Pool     = pool,
                    Question = question
                };
                unitOfWork.PoolQuestionRepository.Insert(poolQuestion);

                Answer           answer           = unitOfWork.AnswerRepository.GetByID(q.Result);
                AnsweredQuestion answeredQuestion = new AnsweredQuestion()
                {
                    Answer   = answer,
                    Pool     = pool,
                    Question = question
                };
                unitOfWork.AnsweredQuestionRepository.Insert(answeredQuestion);

                Answer correctAnswer    = unitOfWork.AnswerRepository.Get(x => x.QuestionId == q.Id && x.IsCorrect, null, "").FirstOrDefault();
                AnsweredQuestionVue aqv = new AnsweredQuestionVue()
                {
                    QuestionId      = q.Id,
                    CorrectAnswerId = correctAnswer != null ? correctAnswer.Id : 0,
                    GivenAnswerId   = q.Result,
                    IsCorrect       = ((correctAnswer != null ? correctAnswer.Id : 0) == q.Result)
                };
                answeredQuestionVues.Add(aqv);
            }

            unitOfWork.PoolRepository.Insert(pool);
            unitOfWork.Save();

            double result = (double)answeredQuestionVues.Where(x => x.IsCorrect).Count() / answeredQuestionVues.Count;

            return(new FinishedPoolVue()
            {
                FinalResult = Math.Round(result, 2) * 100,
                AnsweredQuestions = answeredQuestionVues
            });
        }
Exemplo n.º 2
0
        public JsonResult EvaluatePool([FromBody] PoolVue pool)
        {
            var finishedPool = poolManager.EvaluatePool(pool);

            return(Json(finishedPool));
        }