Пример #1
0
        /// <summary>
        /// 题目转换
        /// </summary>
        public static QuestionContract ConvertQuestion(CiWong.Tools.Workshop.DataContracts.QuestionContract question, long parentVersion = 0, decimal questionRefScore = 0, bool isConvertRefInfo = true)
        {
            if (null == question)
            {
                return(null);
            }

            var questionContract = new QuestionContract();

            questionContract.Id               = question.Id;
            questionContract.VersionId        = question.VersionId;
            questionContract.Type             = (int)question.Type;
            questionContract.Stem             = TemplateConverter.Instance.ConvertToHtml(question.Trunk.Body, TemplateConverter.Mathml, TemplateConverter.Mathlate, TemplateConverter.MathmlBlank, TemplateConverter.Math);
            questionContract.IsObjective      = question.IsObjective;
            questionContract.QuestionRefSorce = Convert.ToSingle(questionRefScore);
            questionContract.ParentVersion    = parentVersion;
            questionContract.Opions           = question.Options.Select(t => ConvertOption(t)).ToList();
            if (null != question.Trunk.Attachments)
            {
                questionContract.Attachments = question.Trunk.Attachments.Select(t => ConvertAttachment(t)).ToList();
            }
            if (isConvertRefInfo)
            {
                questionContract.RefInfo = ConvertRefInfo(question);
            }
            return(questionContract);
        }
Пример #2
0
        /// <summary>
        /// 题目参考信息(答案)转换
        /// </summary>
        private static QuestionRefInfo ConvertRefInfo(CiWong.Tools.Workshop.DataContracts.QuestionContract question)
        {
            if (null == question)
            {
                return(null);
            }

            if (null == question.Options || !question.Options.Any() || !question.Options.First().Value.Any())
            {
                return(new QuestionRefInfo());
            }

            if (question.Type == 1 || question.Type == 2)
            {
                return(new QuestionRefInfo()
                {
                    Answers = question.Options.Where(t => t.IsAnswer).Select(t => t.Id.ToString()).ToArray()
                });
            }
            else
            {
                return(new QuestionRefInfo()
                {
                    Answers = question.Options.Where(t => t.IsAnswer).Select(t => t.Value.First().Body).ToArray()
                });
            }
        }