Example #1
0
        public static ArticleSlugStatus FromArticle(Article article)
        {
            if (article == null)
            {
                throw new ArgumentNullException("article");
            }

            return new ArticleSlugStatus { ArticleSlug = article.Slug };
        }
Example #2
0
 public ArticlePage(
     ArticleSlug articleSlug,
     Article article,
     ArticleRevision articleRevision = null,
     ArticleRedirect articleRedirect = null)
     : base(articleSlug, article, articleRevision, articleRedirect)
 {
     this.PopulateArticleRevision(articleRevision);
 }
Example #3
0
        public ArticlePageBase(
            ArticleSlug articleSlug,
            Article article,
            ArticleRevision articleRevision = null,
            ArticleRedirect articleRedirect = null)
        {
            this.ArticleSlug = articleSlug;

            PopulateArticle(article);
            PopulateArticleRevision(articleRevision);
            PopulateArticleRedirect(articleRedirect);

            this.ArticleAccess = this.ArticleAccess ?? ArticleAccess.Default();
            this.ArticleSlug = this.ArticleSlug ?? ArticleSlug.Empty;
            this.ArticleTags = this.ArticleTags ?? Enumerable.Empty<string>();
            this.ArticleRevisionDate = this.ArticleRevisionDate ?? ArticleRevisionDate.Empty;
            this.RedirectedFromArticleSlug = this.RedirectedFromArticleSlug ?? ArticleSlug.Empty;
            this.ArticleRevisionOutboundArticleSlugs = this.ArticleRevisionOutboundArticleSlugs
                                                       ?? Enumerable.Empty<string>();
        }
Example #4
0
        public static ArticleSlugStatus FromCapitalized(ArticleSlug articleSlug, Article capitalizedArticle)
        {
            if (articleSlug == null)
            {
                throw new ArgumentNullException("articleSlug");
            }
            if (capitalizedArticle == null)
            {
                throw new ArgumentNullException("capitalizedArticle");
            }

            return new ArticleSlugStatus { ArticleSlug = capitalizedArticle.Slug, ArticleSlugCapitalized = articleSlug };
        }
Example #5
0
        private Article GetOrCreateArticle(
            ArticleSlug articleSlug,
            ArticleAccessType accessType = ArticleAccessType.CanRead)
        {
            var article = this.TryGetArticle(articleSlug, accessType);
            if (article == null)
            {
                article = new Article(articleSlug);
                this.CurrentSession.Store(article);
            }

            return article;
        }
Example #6
0
        public Article SaveArticle(Article article)
        {
            if (article == null)
            {
                throw new ArgumentNullException("article");
            }

            bool articleExists = !string.IsNullOrWhiteSpace(article.Id);
            if (articleExists)
            {
                return article;
            }

            var articleSlugStatus = this.GetArticleSlugStatus(article.Slug);
            if (articleSlugStatus.HasAnySlug)
            {
                throw new ArticleSlugConflictException(article.Slug);
            }

            this.CurrentSession.Store(article);

            return article;
        }
Example #7
0
        private void PopulateArticle(Article article)
        {
            if (article == null)
            {
                return;
            }

            this.ActiveArticleRevisionId = article.ActiveArticleRevisionId;
            this.ArticleAccess = article.ArticleAccess;
            this.ArticleId = article.Id;
            this.ArticleSlug = article.Slug;
            this.ArticleTags = article.Tags;
        }