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