/// <summary> /// Initializes a new instance of the <see cref="TiMuEntry" /> class. /// </summary> /// <param name="timuJsonModel">The timu json model.</param> /// <param name="tiMu">The ti mu.</param> public TiMuEntry(TimuJsonModel timuJsonModel, TiMu tiMu) { _timuJsonModel = timuJsonModel; //获取题目对象 _timu = tiMu; /* GeTiMuById(_timuJsonModel.TiMuId);*/ }
private void PrepareTopic(EntryExaminationModel model, TiMu timu) { //根据科目id获取所以子孙知识点集合 var knowledegs = _knowledgeService.GetChildPoints(timu.SubjectId, null); var knowledgeSource = new List <KnowledgePiont>(); knowledegs.ForEach(d => { knowledgeSource.Add(new KnowledgePiont() { Id = d.Id, Kpid = d.Id, Name = d.Name, ParentId = d.ParentId, SubjectId = d.SubjectId }); }); var revertPage = new RevertPage(); revertPage.Tmid = timu.Id.ToString(); revertPage.KnowledgeSource = knowledgeSource; //获取本题目主知识点 var maink = _knowledgeService.GetMainKnowledgeByTiMu(timu.Id, timu.SubjectId); //获取本题目相关知识点 var minors = _knowledgeService.GetMinorTiMuKnowledgeByTiMu(timu.Id, timu.SubjectId); var minorList = new List <KnowledgePiont>(); revertPage.Diff = timu.Difficult; revertPage.VideoId = timu.VideoCode; revertPage.Teacher = ""; revertPage.ErrorMessage = timu.BookTiMu.ErrorInfo; if (maink != null) { revertPage.MainTiMuKnowledge = new KnowledgePiont() { Id = maink.Id, Kpid = maink.Id, Name = maink.Name, ParentId = maink.ParentId, SubjectId = maink.SubjectId }; } else { revertPage.MainTiMuKnowledge = null; } minors.ForEach(d => { minorList.Add(new KnowledgePiont() { Id = d.Id, Kpid = d.Id, Name = d.Name, ParentId = d.ParentId, SubjectId = d.SubjectId }); }); revertPage.MinorTiMuKnowledge = minorList; model.RevertPage = revertPage; }
/// <summary> /// 添加题目 /// </summary> /// <param name="tiMu">The ti mu.</param> /// <exception cref="System.ArgumentNullException"></exception> public void InsertTiMu(TiMu tiMu) { if (tiMu == null) { throw new ArgumentNullException(nameof(tiMu)); } _tiMuRepository.Insert(tiMu); }
public TiMuBuiltRequest(TiMu tiMu, string index = null, string applicationUrl = null, bool isAnalyticVisable = false, int?choiceIndex = null, bool isCreatePdf = false) { this.TiMu = tiMu; this.Index = index; this.IsAnalyticVisable = isAnalyticVisable; this.ChoiceIndex = choiceIndex; this.IsCreatePdf = isCreatePdf; this.ApplicationUrl = applicationUrl; }
/// <summary> /// 录题页面编辑使用 /// </summary> /// <returns></returns> public static void EntryGeTiMuFormatById(TiMu timu) { var inputs = timu.Inputs; if (inputs.Any()) { var reg = new Regex("<kbd></kbd>"); var inputList = inputs.OrderBy(d => d.Order).ToList(); for (int i = 0; i < inputList.Count; i++) { var type = inputList[i].InputType; switch (type) { case "radio": timu.Trunk = timu.Trunk.Replace("<kbd></kbd>", ""); break; case "checkbox-all": timu.Trunk = timu.Trunk.Replace("<kbd></kbd>", ""); break; case "online-input": var online = "[k type=\"" + type + "\" score=\"" + inputList[i].InputScore + "\"]" + inputList[i].InputAnswer + "[/k]"; timu.Trunk = reg.Replace(timu.Trunk, online, 1, 0); break; case "duoguo-input": var duoguo = "[k type=\"" + type + "\" score=\"" + inputList[i].InputScore + "\"]" + inputList[i].InputAnswer + "[/k]"; timu.Trunk = reg.Replace(timu.Trunk, duoguo, 1, 0); break; default: var others = "[k type=\"" + type + "\" score=\"" + inputList[i].InputScore + "\"]" + inputList[i].InputAnswer + "[/k]"; timu.Trunk = reg.Replace(timu.Trunk, others, 1, 0); break; } } } }
private void TiMuConvert(EntryExaminationModel model, TiMu timu) { var inputs = new List <JsonInput>(); var choices = new List <JsonInputChoice>(); foreach (Input input in timu.Inputs.OrderBy(d => d.Order)) { //选项 foreach (InputChoice choice in input.InputChoice.OrderBy(d => d.Order)) { choices.Add(new JsonInputChoice() { Id = choice.Id, InputId = choice.InputId, ChoiceContent = choice.ChoiceContent, Score = choice.Score, Order = choice.Order }); } //答案 inputs.Add(new JsonInput() { Id = input.Id, TmId = input.TmId, InputCode = input.InputCode, BaseType = input.BaseType, InputType = input.InputType, Score = input.Score, Order = input.Order, InputAnswer = input.InputAnswer, InputChoice = choices }); } model.Timu = new JsonTiMu() { Id = timu.Id, SubjectId = timu.SubjectId, TiMuTypeId = timu.TiMuTypeId, Trunk = timu.Trunk, Analysis = timu.Analysis, Answer = timu.Answer, Comment = timu.Comment, Difficult = timu.Difficult, Discriminate = timu.Discriminate, StandardTime = timu.StandardTime, StanderdScroe = timu.StanderdScroe, AbilityId = timu.AbilityId, GradeId = timu.GradeId, Year = timu.Year, Soure = timu.Soure, QualityId = timu.QualityId, Price = timu.Price, Inputs = inputs, LargeNumber = timu.BookTiMu.LargeNumber, SmallNumber = timu.BookTiMu.SmallNumber, PageNumber = timu.BookTiMu.PageNumber }; if (timu.Subject != null) { model.Timu.Subject = new JsonSubject() { Id = timu.Subject.Id, Name = timu.Subject.Name, SystemCode = timu.Subject.SystemCode, DegreeId = timu.Subject.DegreeId, ParentId = timu.Subject.ParentId, Order = timu.Subject.Order, Active = timu.Subject.Active }; } }
/// <summary> /// Updates the ti mu. /// </summary> /// <param name="tiMu">The ti mu.</param> public void UpdateTiMu(TiMu tiMu) { _tiMuRepository.Update(tiMu); }
/// <summary> /// 解析题目(选项、分析、解答、点评等)并且保存到相应的表 /// </summary> /// <param name="timuStr">The timu string.</param> /// <param name="taskItemId">The task item identifier.</param> /// <param name="parentTmId">The parent tm identifier.</param> /// <param name="property">The property.</param> /// <returns></returns> public string SaveTiMu(string timuStr, int?taskItemId, Guid?parentTmId, string property = null) { var question = ""; string callbackTmid = string.Empty; try { //序列化前端页面题目对象 var timuEntity = timuStr.Json2Obj <TimuJsonModel>(); var timu = _tiMuRepository.GetById(timuEntity.TiMuId); callbackTmid = timuEntity.TiMuId.ToString(); if (timu == null) { timu = new TiMu() { Id = timuEntity.TiMuId, SubjectId = timuEntity.SubjectId, ParentId = parentTmId }; InsertTiMu(timu); //把题目归属到对应的章节下面 var taskItem = _bookWorkTaskItemRepository.GetById(taskItemId); var bookTimu = new BookTiMu() { TaskItemId = taskItem.Id, Id = timu.Id, BookId = taskItem.BookChapter.BookId, Status = BookTiMu.TimuStatus.Valid, Order = timuEntity.TimuBookOrder ?? 1 }; _bookTiMuRepository.Insert(bookTimu); //保存一个空的答案数据到数据库,用于页面编辑前端js使用 var input = new Input() { Id = Guid.NewGuid(), TmId = timu.Id, InputCode = timu.Id + "_a", BaseType = "text", InputType = "", InputAnswer = "", Score = 0, Order = 1, }; callbackTmid = timu.Id.ToString(); _inputRepository.Insert(input); } var tiMuEntry = new TiMuEntry(timuEntity, timu); var result = tiMuEntry.TiMuFormat(); //更新题目 _tiMuRepository.Update(result.TiMu); //如果有答案则更新,没有就添加 foreach (Input d in result.InputList) { var input = _inputRepository.GetById(d.Id); if (input != null) { _inputRepository.Update(d); } else { _inputRepository.Insert(d); } } //如果有选项则更行,没有就添加 foreach (InputChoice d in result.InputChoiceList) { var choice = _inputChoiceRepository.GetById(d.Id); if (choice != null) { _inputChoiceRepository.Update(d); } else { _inputChoiceRepository.Insert(d); } } //删除答案 if (result.DeleteInputs != null && result.DeleteInputs.Any()) { _inputRepository.Delete(result.DeleteInputs); } //更新booktimu相關信息 var booktimu = timu.BookTiMu; if (booktimu != null) { booktimu.LargeNumber = timuEntity.LargeNumber; booktimu.SmallNumber = timuEntity.SmallNumber; booktimu.PageNumber = timuEntity.PageNumber; _bookTiMuRepository.Update(booktimu); } question = "保存成功!"; if (property != null) { question = SaveTiMuMark(property); } } catch (Exception e) { question = "保存失败:" + e.Message; } var obj = new { info = question, tmid = callbackTmid }; return(obj.Obj2Json()); }