コード例 #1
0
        public WikiArticleViewModel(
            RequestContext requestContext,
            ArticleId articleId,
            ArticleRevisionDate articleRevisionDate = null,
            bool shouldRedirect = false)
            : base(requestContext, articleId, articleRevisionDate, HeaderTab.Article)
        {
            this.ShouldRedirect = shouldRedirect;

            this.HtmlContent = new HtmlString(string.Empty);
            this.ArticleTags = EmptyCollection;

            var articleResult = CurrentRepository.GetArticleResult(articleId, articleRevisionDate);

            this.ArticleRedirectFrom = articleResult.ArticleRedirectFromSlug;
            this.ArticleRedirectTo = articleResult.ArticleRedirectToSlug;

            if (articleResult.HasRedirect && !shouldRedirect)
            {
                return;
            }

            this.ArticleTags = (articleResult.HasArticle && articleResult.Article.Tags != null)
                                   ? articleResult.Article.Tags.ToList()
                                   : this.ArticleTags;

            this.DisplayArticleId = articleResult.HasArticle ? articleResult.Article.Id : this.DisplayArticleId;

            if (!articleResult.HasArticle || articleResult.ArticleRevision == null)
            {
                return;
            }

            this.HasArticle = true;

            this.HtmlContent = new WikiDownArticleHtmlString(articleResult, this.CurrentRepository);
        }