private MultipleRiddleAnswer GetOnlyQuestions(MultipleRiddleAnswer multipleRiddleAnswer) { Dictionary <int, string> dictionaryWithoutAnswers = multipleRiddleAnswer.Answers.Keys .GroupBy(k => k) .ToDictionary(kv => kv.Key, kv => string.Empty); return(new MultipleRiddleAnswer { Answers = dictionaryWithoutAnswers }); }
private bool IsMultipleRiddleCorrect(MultipleRiddleAnswer riddle, MultipleRiddleAnswer answer) { foreach (KeyValuePair <int, string> kv in riddle.Answers) { string questionAnswer = answer.Answers[kv.Key]; if (!EqualWithoutSlash(questionAnswer.ToUpper(), kv.Value.ToUpper())) { return(false); } } return(true); }
private IActionResult Answer(MultipleRiddleAnswer riddle) { int currentRiddleNumber = GetRiddleNumber(); MultipleRiddleAnswer riddleAnswer = GetRiddleAnswer(currentRiddleNumber) as MultipleRiddleAnswer; if (IsMultipleRiddleCorrect(riddleAnswer, riddle)) { TempData["HasSucceeded"] = true; return(NextRiddle(currentRiddleNumber, riddleAnswer.NextRiddleQuestion)); } TempData["IsMultipleAnswer"] = true; return(RedirectToQuestionWithWrongAnswer()); }