/// <summary> /// 获取解析的正文 /// </summary> /// <param name="versionId">词条版本id</param> /// <returns>解析后的VersionId正文</returns> public string GetResolvedBody(long versionId) { string cacheKey = GetCacheKeyOfResolvedBody(versionId); string resolveBody = cacheService.Get <string>(cacheKey); if (resolveBody == null) { resolveBody = GetBody(versionId); if (!string.IsNullOrEmpty(resolveBody)) { IBodyProcessor versionBodyProcessor = DIContainer.ResolveNamed <IBodyProcessor>(TenantTypeIds.Instance().WikiPage()); WikiPageVersion wikiPageVersion = Get(versionId); resolveBody = versionBodyProcessor.Process(resolveBody, TenantTypeIds.Instance().WikiPage(), wikiPageVersion.PageId, wikiPageVersion.UserId); cacheService.Set(cacheKey, resolveBody, CachingExpirationType.SingleObject); } } return(resolveBody); }
/// <summary> /// 获取问答的标题和内容 /// </summary> /// <param name="questionId"></param> /// <param name="title"></param> /// <param name="body"></param> public void GetAskTitleAndBody(long questionId, out string title, out string body) { IBodyProcessor bodyProcessor = DIContainer.ResolveNamed <IBodyProcessor>("101300"); var dao = CreateDAO(); string questionBody = string.Empty; dynamic question = dao.FirstOrDefault <dynamic>(Sql.Builder.Select("*").From("spb_AskQuestions").Where("QuestionId=@0", questionId)); title = question.Subject; questionBody = question.Body; bodyProcessor.Process(questionBody, "101301", questionId, question.UserId); dynamic answer = dao.FirstOrDefault <dynamic>(Sql.Builder.Select("*").From("spb_AskAnswers").Where("QuestionId=@0 and IsBest=1 ", questionId)); string answerBody = ""; if (answer != null) { answerBody = answer.Body; bodyProcessor.Process(answerBody, "101302", answer.AnswerId, answer.UserId); } body = questionBody + answerBody; }