/// <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); }
/// <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() }); } }