Example #1
0
        public void MergeMultipleChoiceAnswersFor2DifferentAnswers()
        {
            var existingSurveyAnswersSummary = new SurveyAnswersSummary
            {
                TotalAnswers = 1
            };
            var existingQuestionAnswersSummary = new QuestionAnswersSummary
            {
                QuestionType   = QuestionType.MultipleChoice,
                AnswersSummary = new JavaScriptSerializer().Serialize(new Dictionary <string, int> {
                    { "choice 1", 1 }
                }),
                QuestionText = "question to merge"
            };

            existingSurveyAnswersSummary.QuestionAnswersSummaries.Add(existingQuestionAnswersSummary);

            var newSurveyAnswersSummary = new SurveyAnswersSummary
            {
                TotalAnswers = 1
            };
            var newQuestionAnswersSummary = new QuestionAnswersSummary
            {
                QuestionType   = QuestionType.MultipleChoice,
                AnswersSummary = new JavaScriptSerializer().Serialize(new Dictionary <string, int> {
                    { "choice 2", 1 }
                }),
                QuestionText = "question to merge"
            };

            newSurveyAnswersSummary.QuestionAnswersSummaries.Add(newQuestionAnswersSummary);

            existingSurveyAnswersSummary.MergeWith(newSurveyAnswersSummary);

            Assert.AreEqual(2, existingSurveyAnswersSummary.TotalAnswers);
            Assert.AreEqual(1, existingSurveyAnswersSummary.QuestionAnswersSummaries.Count);
            var questionAnswersSummary = existingSurveyAnswersSummary.QuestionAnswersSummaries.First();

            Assert.AreEqual("question to merge", questionAnswersSummary.QuestionText);
            Assert.AreEqual(QuestionType.MultipleChoice, questionAnswersSummary.QuestionType);
            var actualSummary = new JavaScriptSerializer().Deserialize <Dictionary <string, int> >(questionAnswersSummary.AnswersSummary);

            Assert.AreEqual(2, actualSummary.Keys.Count);
            Assert.AreEqual(1, actualSummary["choice 1"]);
            Assert.AreEqual(1, actualSummary["choice 2"]);
        }
        public static string Create(QuestionAnswersSummary questionAnswersSummary)
        {
            switch (questionAnswersSummary.QuestionType)
            {
            case QuestionType.SimpleText:
                return("Summary-SimpleText");

            case QuestionType.MultipleChoice:
                return("Summary-MultipleChoice");

            case QuestionType.FiveStars:
                return("Summary-FiveStars");

            default:
                throw new ArgumentException("Invalid QuestionType value", "questionAnswersSummary");
            }
        }
Example #3
0
        public void Merge5StarsAnswersCalculatesRatingAverageFor3Answers()
        {
            var existingSurveyAnswersSummary = new SurveyAnswersSummary
            {
                TotalAnswers = 2
            };
            var existingQuestionAnswersSummary = new QuestionAnswersSummary
            {
                QuestionType   = QuestionType.FiveStars,
                AnswersSummary = "1",
                QuestionText   = "question to merge"
            };

            existingSurveyAnswersSummary.QuestionAnswersSummaries.Add(existingQuestionAnswersSummary);

            var newSurveyAnswersSummary = new SurveyAnswersSummary
            {
                TotalAnswers = 1
            };
            var newQuestionAnswersSummary = new QuestionAnswersSummary
            {
                QuestionType   = QuestionType.FiveStars,
                AnswersSummary = "2",
                QuestionText   = "question to merge"
            };

            newSurveyAnswersSummary.QuestionAnswersSummaries.Add(newQuestionAnswersSummary);

            existingSurveyAnswersSummary.MergeWith(newSurveyAnswersSummary);

            Assert.AreEqual(3, existingSurveyAnswersSummary.TotalAnswers);
            Assert.AreEqual(1, existingSurveyAnswersSummary.QuestionAnswersSummaries.Count);
            var questionAnswersSummary = existingSurveyAnswersSummary.QuestionAnswersSummaries.First();

            Assert.AreEqual("question to merge", questionAnswersSummary.QuestionText);
            Assert.AreEqual(QuestionType.FiveStars, questionAnswersSummary.QuestionType);
            Assert.AreEqual("1.33", questionAnswersSummary.AnswersSummary);
        }
Example #4
0
 public static async Task <IHtmlContent> PartialForAsync(this IHtmlHelper html, QuestionAnswersSummary questionAnswersSummary)
 {
     return(await html.PartialAsync("~/Views/Shared/DisplayTemplates/Summary-" + GetBaseTemplateName(questionAnswersSummary.QuestionType) + ".cshtml", questionAnswersSummary, null));
 }