/// <summary>
        /// 录题页面编辑使用
        /// </summary>
        /// <param name="tmid">The tmid.</param>
        /// <returns></returns>
        public TiMu EntryGeTiMuFormatById(Guid tmid)
        {
            var timu = _tiMuRepository.GetById(tmid);

            TiMuEntry.EntryGeTiMuFormatById(timu);
            return(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());
        }