Exemplo n.º 1
0
        public EvaluationScore CreateAnswers(Guid idEvaluation, EvaluationAnswer answersList)
        {
            return(ServiceErrorHandler.Handle(() =>
            {
                Log.Info($"Checking if evaluation with id {idEvaluation} exists");
                var answersDao = this.answersDaoBuilder.Create();
                var evaluationsDao = this.evaluationsDaoBuilder.Create();
                var templatesDao = this.templatesDaoBuilder.Create();

                if (!evaluationsDao.EvaluationExists(idEvaluation))
                {
                    throw new ItemNotFoundServiceException($"Unable to find an evaluation with id {idEvaluation}");
                }

                var evaluation = evaluationsDao.GetEvaluation(idEvaluation);
                var template = templatesDao.GetTemplate(evaluation.IdTemplate);
                var evaluationTemplate = EvaluationScoreHelpers.GenerateEvaluationTemplate(template, evaluation);
                evaluationTemplate.AppendAnswers(answersList);
                var scoreService = ServicesFacade.Instance.GetScoreService();
                var caluculatedEvaluation = scoreService.CalculateScore(evaluationTemplate);

                Log.Info($"Creating answers for evaluation {idEvaluation}");
                caluculatedEvaluation.IdEvaluation = idEvaluation;
                caluculatedEvaluation.Date = DateTime.Now.ToUniversalTime();
                EvaluationScore newAnswers = answersDao.CreateAnswers(caluculatedEvaluation);

                Log.Info($"Evaluation answers created succesfully, Id {newAnswers.Id}");
                return newAnswers;
            }));
        }
        public void TestGetTemplateOptions()
        {
            var evaluationQuestion = this.Evaluation.Body[0].Questions[0].Options;
            var expected           = this.Expected.QuestionList.ToList()[0].OptionList;
            var actual             = EvaluationScoreHelpers.GetOptionsTemplateFrom(evaluationQuestion);

            Assert.Equal(expected.Count, actual.Count);
        }
        public void TestZipQuestionLists()
        {
            var templateQuestions   = this.Template.Body;
            var evalautionQuestions = this.Evaluation.Body;
            var expected            = this.Expected.QuestionList.ToList();
            var actual = EvaluationScoreHelpers.JoinQuestionLists(templateQuestions, evalautionQuestions);

            Assert.Equal(expected.Count, actual.Count);
        }
        public void TestAppendAnswers()
        {
            var answerList = new EvaluationAnswer()
            {
                IdEvaluation = this.Evaluation.Id,
                Owner        = "annonymous",
                Sections     = new List <SectionAnswer>()
                {
                    new SectionAnswer()
                    {
                        QuestionAnswers = new List <QuestionAnswer>()
                        {
                            new QuestionAnswer()
                            {
                                IdQuestion         = this.Evaluation.Body[0].Questions[0].Id,
                                SelectedAnswersIds = new List <Guid>()
                                {
                                    this.Evaluation.Body[0].Questions[0].Options[0].Id
                                }
                            },
                            new QuestionAnswer()
                            {
                                IdQuestion         = this.Evaluation.Body[0].Questions[1].Id,
                                SelectedAnswersIds = new List <Guid>()
                                {
                                    this.Evaluation.Body[0].Questions[1].Options[1].Id,
                                    this.Evaluation.Body[0].Questions[1].Options[0].Id,
                                    this.Evaluation.Body[0].Questions[0].Options[0].Id
                                }
                            }
                        }
                    }
                }
            };

            EvaluationScoreHelpers.AppendAnswers(this.Expected, answerList);

            Assert.Equal(answerList.Sections[0].QuestionAnswers[0].SelectedAnswersIds, this.Expected.QuestionList.ToList()[0].Answers.ToList());
            Assert.Equal(answerList.Sections[0].QuestionAnswers[1].SelectedAnswersIds, this.Expected.QuestionList.ToList()[1].Answers.ToList());
        }
        public void TestGenerateEvaluationTemplate()
        {
            var actual = EvaluationScoreHelpers.GenerateEvaluationTemplate(this.Template, this.Evaluation);

            Assert.Equal(this.Expected.IdEvaluation, actual.IdEvaluation);
        }