protected override Yw_SubjectContent GetContent( QuestionInputModel sub, SubjectBll bll, int currentUser, Yw_SubjectContent content) { FillInBlank subject = sub as FillInBlank; Yw_FillInBlankContent derivedContent = null; if (content == null) { derivedContent = new Yw_FillInBlankContent(); derivedContent.Ysc_CreateTime = DateTime.Now; derivedContent.Ysc_Creator = currentUser; derivedContent.Ysc_SubjectType = subject.SubjectType; } else { derivedContent = content as Yw_FillInBlankContent; } derivedContent.Ysc_Editor = currentUser; derivedContent.Ysc_Explain = subject.Explain; derivedContent.Ysc_Content_Obj = new FillInBlankContentObj { Stem = UeditorContentFactory.Blank(subject.Name) }; derivedContent.Ysc_Answer_Obj = new FillInBlankAnswerObj { Correct = subject.Correct.Blanks, Other = subject.Other.Blanks, Perfect = subject.Perfect.Blanks }; derivedContent.Ysc_UpdateTime = DateTime.Now; return(derivedContent); }
public void UeditorContentFactory_Blank_ReturnVirtualPath() { string name = "<p>sfsfsfssf<input type=\"button\" data-num=\"376\" onclick=\"parent.showDialog(this)\" value=\"答案\"/>sfsfssfsfsfsfsfsfsfs<input type=\"button\" data-num=\"736\" onclick=\"parent.showDialog(this)\" value=\"答案\"/>sfdd</p>"; string result = UeditorContentFactory.Blank(name); if (result.Contains("<input type=")) { Assert.Fail(); } }
public static SubjectVm Create(Yw_SubjectContent content) { Check.IfNull(content, nameof(content)); SubjectVm vm = null; SubjectTypeEnum subjectType = (SubjectTypeEnum)content.Ysc_SubjectType; switch (subjectType) { case SubjectTypeEnum.择题: Yw_SubjectSelectContent select = content as Yw_SubjectSelectContent; var random = select.Ysc_Content_Obj.Random; var mOptions = select.Ysc_Content_Obj.Options; if (random == 1) //随机显示 { mOptions = mOptions.OrderBy(c => Guid.NewGuid()).ToList(); } vm = new MultipleChoiceSubjectVm { KnowledgeId = 0, Analysis = select.Ysc_Explain, Answer = select.Ysc_Answer_Obj.Answers, StemType = select.Ysc_Content_Obj.StemType, Stem = select.Ysc_Content_Obj.Stem, Options = mOptions, OptionType = select.Ysc_Content_Obj.ContentType, SubjectType = select.Ysc_SubjectType, Display = select.Ysc_Content_Obj.Display }; break; case SubjectTypeEnum.判断题: Yw_TrueFalseContent trueFalse = content as Yw_TrueFalseContent; vm = new TrueFalseSubjectVm { KnowledgeId = 0, Analysis = trueFalse.Ysc_Explain, Answer = trueFalse.Ysc_Answer_Obj.Answer, StemType = trueFalse.Ysc_Content_Obj.StemType, Stem = trueFalse.Ysc_Content_Obj.Stem, SubjectType = trueFalse.Ysc_SubjectType }; break; case SubjectTypeEnum.填空题: Yw_FillInBlankContent fillInBlank = content as Yw_FillInBlankContent; string blankStem = UeditorContentFactory.Blank( fillInBlank.Ysc_Content_Obj.Stem); vm = new FillInBlankSubjectVm { KnowledgeId = 0, Analysis = fillInBlank.Ysc_Explain, Answer = new { Perfect = fillInBlank.Ysc_Answer_Obj.Perfect, Correct = fillInBlank.Ysc_Answer_Obj.Correct, Other = fillInBlank.Ysc_Answer_Obj.Other }, StemType = (int)UeditorType.Text, Stem = blankStem, SubjectType = fillInBlank.Ysc_SubjectType }; break; case SubjectTypeEnum.择填空: MultipleChoiceFillInBlankContent multipleChoiceFillInBlank = content as MultipleChoiceFillInBlankContent; List <SubjectOption> options = new List <SubjectOption>(); options.AddRange(multipleChoiceFillInBlank.Ysc_Content_Obj.SubjectOptions); options.AddRange(multipleChoiceFillInBlank.Ysc_Content_Obj.SubjectGOptions); UeditorType contentType = (UeditorType)multipleChoiceFillInBlank.Ysc_Content_Obj.ContentType; RestoreUrl(options, contentType); options = options.OrderBy(c => Guid.NewGuid()).ToList(); string mBlankStem = UeditorContentFactory.Blank( multipleChoiceFillInBlank.Ysc_Content_Obj.Stem); vm = new MultipleChoiceFillInBlankSubjectVm { KnowledgeId = 0, Analysis = multipleChoiceFillInBlank.Ysc_Explain, Answer = multipleChoiceFillInBlank.Ysc_Answer_Obj.Answers, StemType = (int)UeditorType.Text, Stem = mBlankStem, Options = options, OptionType = multipleChoiceFillInBlank.Ysc_Content_Obj.ContentType, SubjectType = multipleChoiceFillInBlank.Ysc_SubjectType }; break; case SubjectTypeEnum.连线题: Yw_MatchContent match = content as Yw_MatchContent; var contentObj = match.Ysc_Content_Obj; var leftOptions = new List <SubjectOption>(); leftOptions.AddRange(contentObj.LeftOptions); RestoreUrl(leftOptions, (UeditorType)contentObj.LeftOptionContentType); leftOptions = leftOptions.OrderBy(c => Guid.NewGuid()).ToList(); var rightOptions = new List <SubjectOption>(); rightOptions.AddRange(contentObj.RightOptions); RestoreUrl(rightOptions, (UeditorType)contentObj.RightOptionContentType); rightOptions = rightOptions.OrderBy(c => Guid.NewGuid()).ToList(); vm = new MatchSubjectVm { KnowledgeId = 0, Analysis = match.Ysc_Explain, Answer = match.Ysc_Answer_Obj.Answers, StemType = contentObj.StemType, Stem = contentObj.Stem, LeftOptions = leftOptions, RightOptions = rightOptions, SubjectType = match.Ysc_SubjectType, LeftOptionType = match.Ysc_Content_Obj.LeftOptionContentType, RightOptionType = match.Ysc_Content_Obj.RightOptionContentType }; break; case SubjectTypeEnum.主观题: Yw_SubjectFreeContent free = content as Yw_SubjectFreeContent; string freeAnswer = free.Ysc_Answer_Obj.Answer; if (free.Ysc_Content_Obj.AnswerType == (int)UeditorType.Image) { freeAnswer = ConfigurationManager.AppSettings["OssHostUrl"] + freeAnswer; } string freeStandard = free.Ysc_Content_Obj.ScoreRules; if (free.Ysc_Content_Obj.ScoreRulesType == (int)UeditorType.Image) { freeStandard = ConfigurationManager.AppSettings["OssHostUrl"] + freeStandard; } string freeStem = free.Ysc_Content_Obj.Stem; if (free.Ysc_Content_Obj.StemType == (int)UeditorType.Image) { freeStem = ConfigurationManager.AppSettings["OssHostUrl"] + freeStem; } vm = new FreeSubjectVm { KnowledgeId = 0, Analysis = free.Ysc_Explain, Answer = freeAnswer, AnswerType = free.Ysc_Content_Obj.AnswerType, StemType = free.Ysc_Content_Obj.StemType, Stem = freeStem, SubjectType = free.Ysc_SubjectType, Standard = freeStandard, StandardType = free.Ysc_Content_Obj.ScoreRulesType }; break; case SubjectTypeEnum.圈点批注标色: Yw_SubjectMarkContent mark = content as Yw_SubjectMarkContent; string stem = mark.Ysc_Content_Obj.Stem; if (mark.Ysc_Content_Obj.StemType == (int)UeditorType.Image) { stem = ConfigurationManager.AppSettings["OssHostUrl"] + stem; } string markContent = mark.Ysc_Content_Obj.Content? .Replace("{:", string.Empty) .Replace("{:", string.Empty) .Replace("}", string.Empty); vm = new MarkSubjectVm { KnowledgeId = 0, Analysis = mark.Ysc_Explain, Answer = mark.Ysc_Answer_Obj.Answers, StemType = mark.Ysc_Content_Obj.StemType, Stem = stem, SubjectType = mark.Ysc_SubjectType, Content = markContent, Color = mark.Ysc_Content_Obj.Color }; break; case SubjectTypeEnum.圈点批注断句: Yw_SubjectMark2Content mark2 = content as Yw_SubjectMark2Content; string mark2Stem = mark2.Ysc_Content_Obj.Stem; if (mark2.Ysc_Content_Obj.StemType == (int)UeditorType.Image) { mark2Stem = ConfigurationManager.AppSettings["OssHostUrl"] + mark2Stem; } string mark2Content = mark2.Ysc_Content_Obj.Content? .Replace("/", string.Empty); vm = new Mark2SubjectVm { KnowledgeId = 0, Analysis = mark2.Ysc_Explain, Answer = mark2.Ysc_Answer_Obj.Answers, StemType = mark2.Ysc_Content_Obj.StemType, Stem = mark2Stem, SubjectType = mark2.Ysc_SubjectType, Content = mark2Content, Color = mark2.Ysc_Content_Obj.Color }; break; default: break; } return(vm); }
protected override Yw_SubjectContent GetContent( QuestionInputModel sub, SubjectBll bll, int currentUser, Yw_SubjectContent content) { MultipleChoiceFillInBlank subject = sub as MultipleChoiceFillInBlank; MultipleChoiceFillInBlankContent selectContent = null; if (content == null) { selectContent = new MultipleChoiceFillInBlankContent(); selectContent.Ysc_CreateTime = DateTime.Now; selectContent.Ysc_Creator = currentUser; selectContent.Ysc_SubjectType = subject.SubjectType; } else { selectContent = content as MultipleChoiceFillInBlankContent; } selectContent.Ysc_Editor = currentUser; selectContent.Ysc_Explain = subject.Explain; List <int[]> anses = new List <int[]>(); if (subject.Options != null) { for (int i = 0; i < subject.Options.Count; i++) { int[] ds = new int[2] { i, i }; anses.Add(ds); } } selectContent.Ysc_Answer_Obj = new MultipleChoiceFillInBlankAnswerObj { Answers = anses }; //答案的选项 List <SubjectOption> subjectOptions = new List <SubjectOption>(); if (subject.Options != null) { for (int i = 0; i < subject.Options.Count; i++) { subjectOptions.Add(new SubjectOption { Key = i, Text = UeditorContentFactory.FetchUrl(subject.Options[i], subject.ContentType) }); } } //干扰项 List <SubjectOption> subjectGOptions = new List <SubjectOption>(); if (subject.Goptions != null) { for (int i = 0; i < subject.Goptions.Count; i++) { subjectGOptions.Add(new SubjectOption { Key = i + 100,//干扰项的key设置值 Text = UeditorContentFactory.FetchUrl(subject.Goptions[i], subject.ContentType) }); } } selectContent.Ysc_Content_Obj = new MultipleChoiceFillInBlankContentObj { Stem = UeditorContentFactory.Blank(subject.Name), ContentType = (int)subject.ContentType, SubjectOptions = subjectOptions, SubjectGOptions = subjectGOptions, //GPositions = gps }; selectContent.Ysc_UpdateTime = DateTime.Now; return(selectContent); }