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