public IQuestion Build(string contents) { var questionMatch = _questionRegex.Match(contents); var num = int.Parse(questionMatch.Groups[1].Value); var text = questionMatch.Groups[2].Value.Trim(); var answers = questionMatch.Groups[3].Value; var correct = questionMatch.Groups[5].Value.Trim()[0]; var question = new MultipleChoiceQuestion(num, text); _questionExtraFactory.InsertExtras(contents, question); foreach (Match answerMatch in _answersRegex.Matches(answers)) { var option = answerMatch.Groups[1].Value.Trim()[0]; var answerText = answerMatch.Groups[2].Value.Trim(); var choice = new Choice(option, answerText); question.AddChoice(choice); if (correct == option) { question.Answer = choice; } } return(question); }
public IQuestion Build(string contents) { var match = _questionRegex.Match(contents); var num = int.Parse(match.Groups[1].Value); var text = match.Groups[2].Value.Trim(); var answer = match.Groups[4].Value.Trim(); var question = new WrittenResponseQuestion(num, text) { Answer = new WrittenResponseAnswer(answer) }; _questionExtraFactory.InsertExtras(contents, question); return(question); }
public IQuestion Build(string contents) { var match = _questionRegex.Match(contents); var num = int.Parse(match.Groups[1].Value); var text = match.Groups[2].Value.Trim(); var answer = match.Groups[3].Value; var question = new TrueFalseQuestion(num, text); if (answer.Equals("true", StringComparison.CurrentCultureIgnoreCase)) { question.Answer = true; } else if (answer.Equals("false", StringComparison.CurrentCultureIgnoreCase)) { question.Answer = false; } _questionExtraFactory.InsertExtras(contents, question); return(question); }