示例#1
0
        /// <summary>
        /// Generates the XML from singe question.
        /// </summary>
        /// <param name="question">The question.</param>
        /// <param name="numbering">The numbering.</param>
        /// <returns>Generated xml.</returns>
        public static XElement GenerateXml(Question question, AnswerNumbering numbering = AnswerNumbering.Numerical)
        {
            var questionRoot = new XElement(QuestionTag);

            questionRoot.SetAttributeValue(TypeAttribute, "multichoice");
            if (!string.IsNullOrEmpty(question.Name))
            {
                var name = new XElement(NameTag);
                name.Add(new XElement(TextTag, question.Name));
                questionRoot.Add(name);
            }

            var questionText = new XElement(QuestionTextTag);

            questionText.SetAttributeValue("format", "html");
            var textTag = new XElement(TextTag);

            textTag.Add(new XCData(question.Content));
            questionText.Add(textTag);
            questionRoot.Add(questionText);

            foreach (var answer in question.QuestionAnswers)
            {
                var answerTag = new XElement(AnswerTag);
                answerTag.SetAttributeValue("fraction", answer.Fraction);
                var answerText = new XElement(TextTag);
                answerText.Add(new XCData(answer.Content));
                answerTag.Add(answerText);
                questionRoot.Add(answerTag);
            }

            XElement answerNumbering;

            switch (numbering)
            {
            case AnswerNumbering.None:
                answerNumbering = new XElement(AnswerNumberingTag, "none");
                questionRoot.Add(answerNumbering);
                break;

            case AnswerNumbering.Alphabetical:
                answerNumbering = new XElement(AnswerNumberingTag, "abc");
                questionRoot.Add(answerNumbering);
                break;

            case AnswerNumbering.AlphabeticalCapitalized:
                answerNumbering = new XElement(AnswerNumberingTag, "ABCD");
                questionRoot.Add(answerNumbering);
                break;

            case AnswerNumbering.Numerical:
                answerNumbering = new XElement(AnswerNumberingTag, "123");
                questionRoot.Add(answerNumbering);
                break;
            }

            return(questionRoot);
        }
示例#2
0
        /// <summary>
        /// Generates the XML from singe question.
        /// </summary>
        /// <param name="question">The question.</param>
        /// <param name="numbering">The numbering.</param>
        /// <returns>Generated xml.</returns>
        public static XElement GenerateXml(Question question, AnswerNumbering numbering = AnswerNumbering.Numerical)
        {
            var questionRoot = new XElement(QuestionTag);
            questionRoot.SetAttributeValue(TypeAttribute, "multichoice");
            if (!string.IsNullOrEmpty(question.Name))
            {
                var name = new XElement(NameTag);
                name.Add(new XElement(TextTag, question.Name));
                questionRoot.Add(name);
            }

            var questionText = new XElement(QuestionTextTag);
            questionText.SetAttributeValue("format", "html");
            var textTag = new XElement(TextTag);
            textTag.Add(new XCData(question.Content));
            questionText.Add(textTag);
            questionRoot.Add(questionText);

            foreach (var answer in question.QuestionAnswers)
            {
                var answerTag = new XElement(AnswerTag);
                answerTag.SetAttributeValue("fraction", answer.Fraction);
                var answerText = new XElement(TextTag);
                answerText.Add(new XCData(answer.Content));
                answerTag.Add(answerText);
                questionRoot.Add(answerTag);
            }

            XElement answerNumbering;

            switch (numbering)
            {
                case AnswerNumbering.None:
                    answerNumbering = new XElement(AnswerNumberingTag, "none");
                    questionRoot.Add(answerNumbering);
                    break;
                case AnswerNumbering.Alphabetical:
                    answerNumbering = new XElement(AnswerNumberingTag, "abc");
                    questionRoot.Add(answerNumbering);
                    break;
                case AnswerNumbering.AlphabeticalCapitalized:
                    answerNumbering = new XElement(AnswerNumberingTag, "ABCD");
                    questionRoot.Add(answerNumbering);
                    break;
                case AnswerNumbering.Numerical:
                    answerNumbering = new XElement(AnswerNumberingTag, "123");
                    questionRoot.Add(answerNumbering);
                    break;
            }

            return questionRoot;
        }
示例#3
0
        /// <summary>
        /// Generates the XML from set of questions.
        /// </summary>
        /// <param name="questions">The questions.</param>
        /// <param name="category">The category.</param>
        /// <param name="numbering">The numbering.</param>
        /// <returns>Generated xml.</returns>
        public static XElement GenerateXml(IEnumerable<Question> questions, string category = null, AnswerNumbering numbering = AnswerNumbering.Numerical)
        {
            var quizRoot = new XElement(QuizTag);

            if (!string.IsNullOrEmpty(category))
            {
                var questionCategory = new XElement(QuestionTag);
                questionCategory.SetAttributeValue(TypeAttribute, CategoryTag);
                var categoryTag = new XElement(CategoryTag);
                questionCategory.Add(categoryTag);
                categoryTag.Add(new XElement(TextTag, category));
                quizRoot.Add(questionCategory);
            }

            foreach (var question in questions)
            {
                quizRoot.Add(GenerateXml(question, numbering));
            }

            return quizRoot;
        }
示例#4
0
        /// <summary>
        /// Generates the XML from set of questions.
        /// </summary>
        /// <param name="questions">The questions.</param>
        /// <param name="category">The category.</param>
        /// <param name="numbering">The numbering.</param>
        /// <returns>Generated xml.</returns>
        public static XElement GenerateXml(IEnumerable <Question> questions, string category = null, AnswerNumbering numbering = AnswerNumbering.Numerical)
        {
            var quizRoot = new XElement(QuizTag);

            if (!string.IsNullOrEmpty(category))
            {
                var questionCategory = new XElement(QuestionTag);
                questionCategory.SetAttributeValue(TypeAttribute, CategoryTag);
                var categoryTag = new XElement(CategoryTag);
                questionCategory.Add(categoryTag);
                categoryTag.Add(new XElement(TextTag, category));
                quizRoot.Add(questionCategory);
            }

            foreach (var question in questions)
            {
                quizRoot.Add(GenerateXml(question, numbering));
            }

            return(quizRoot);
        }