Example #1
0
        public static SeriesModel GetSeriesBySlug(string slug)
        {
            var series = DB.Series_GetSeriesBySlug(slug);

            if (series == null)
            {
                return(null);
            }
            return(SeriesModel.FromTable(series));
        }
Example #2
0
        public static SeriesModel GetSeriesBySlug(string slug)
        {
            var series = StoredProcs.Series_GetSeriesBySlug(slug).Execute();

            if (series == null)
            {
                return(null);
            }
            return(SeriesModel.FromTable(series));
        }
Example #3
0
        public static ArticleModel FromTable(Tables.Articles_Extended article)
        {
            // add microdata to take advantage of Google's rich snippets for articles:
            // https://developers.google.com/structured-data/rich-snippets/articles
            if (article.Body_Html.Contains("<img ") && !article.Body_Html.Contains(" itemprop=\"image\" "))
            {
                // only modify the first image
                int index = article.Body_Html.IndexOf("<img ") + "<img ".Length;
                article.Body_Html = article.Body_Html.Substring(0, index) + "itemprop=\"image\" " + article.Body_Html.Substring(index);
                // assume the body+ad contains the entire body
                index = article.BodyAndAd_Html.IndexOf("<img ") + "<img ".Length;
                article.BodyAndAd_Html = article.BodyAndAd_Html.Substring(0, index) + "itemprop=\"image\" " + article.BodyAndAd_Html.Substring(index);
            }

            return(new ArticleModel()
            {
                Id = article.Article_Id,
                Slug = article.Article_Slug,
                Author = AuthorModel.FromTable(article),
                BodyHtml = HtmlCleaner.UnmixContent(article.Body_Html),
                BodyAndAdHtml = HtmlCleaner.UnmixContent(article.BodyAndAd_Html),
                CachedCommentCount = (int)article.Cached_Comment_Count,
                DiscourseTopicId = article.Discourse_Topic_Id,
                DiscourseTopicOpened = article.Discourse_Topic_Opened == "Y",
                LastCommentDate = article.Last_Comment_Date,
                PublishedDate = article.Published_Date,
                Series = SeriesModel.FromTable(article),
                FooterAdHtml = HtmlCleaner.UnmixContent(article.Ad_Html),
                Status = article.PublishedStatus_Name,
                SummaryHtml = HtmlCleaner.UnmixContent(ArticleModel.ExtractSummary(article.Body_Html)),
                Title = article.Title_Text,
                PreviousArticleId = article.Previous_Article_Id,
                PreviousArticleSlug = article.Previous_Article_Slug,
                PreviousArticleTitle = article.Previous_Title_Text,
                NextArticleId = article.Next_Article_Id,
                NextArticleSlug = article.Next_Article_Slug,
                NextArticleTitle = article.Next_Title_Text
            });
        }
Example #4
0
        public static ArticleModel FromTable(Tables.Articles_Extended article)
        {
            DateTime lastCommentDate = DateTime.Now;

            var model = new ArticleModel()
            {
                Id       = article.Article_Id,
                Slug     = article.Article_Slug,
                Author   = AuthorModel.FromTable(article),
                BodyHtml = article.Body_Html,
                DiscourseCommentCount = (int)article.Cached_Comment_Count,
                CachedCommentCount    = (int)article.Cached_Comment_Count,
                DiscourseTopicId      = article.Discourse_Topic_Id,
                DiscourseTopicOpened  = article.Discourse_Topic_Opened == "Y",
                LastCommentDate       = lastCommentDate,
                PublishedDate         = article.Published_Date,
                Series               = SeriesModel.FromTable(article),
                Status               = article.PublishedStatus_Name,
                SummaryHtml          = ArticleModel.ExtractSummary(article.Body_Html),
                Title                = article.Title_Text,
                PreviousArticleId    = article.Previous_Article_Id,
                PreviousArticleSlug  = article.Previous_Article_Slug,
                PreviousArticleTitle = article.Previous_Title_Text,
                NextArticleId        = article.Next_Article_Id,
                NextArticleSlug      = article.Next_Article_Slug,
                NextArticleTitle     = article.Next_Title_Text
            };

            if (article.Discourse_Topic_Id != null)
            {
                var topic = DiscourseHelper.GetDiscussionTopic((int)article.Discourse_Topic_Id);
                model.LastCommentDate       = topic.LastPostedAt;
                model.DiscourseCommentCount = topic.PostsCount;
                model.DiscourseTopicSlug    = topic.Slug;
            }

            return(model);
        }
Example #5
0
        public static IEnumerable <SeriesModel> GetAllSeries()
        {
            var series = StoredProcs.Series_GetSeries().Execute();

            return(series.Select(s => SeriesModel.FromTable(s)));
        }