Пример #1
0
        /// <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);
        }
Пример #2
0
        /// <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;
        }