Exemplo n.º 1
0
        public IEnumerable <ContentInfo3PM> SearchArticles(string tagName)
        {
            var keywords =
                tagName.Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries)
                .Select(i => i.Trim())
                .Where(i => i.Length > 2).ToList();

            var tags = from tag in TagBiz.Read()
                       from k in keywords
                       where tag.Text.Contains(k)
                       select tag.Id;

            var articles = from a in ArticleBiz.ReadPublishedArticles()
                           from k in keywords
                           where a.Title.Contains(k)
                           select a.Id;

            return(ArticleBiz.ReadPublishedArticles()
                   .Where(art =>
                          art.Tags.Any(tag => tags.Contains(tag.Id)) ||
                          articles.Contains(art.Id))
                   .OrderByDescending(a => a.PublishDate)
                   .MapTo <ContentInfo3PM>()
                   .ToList());
        }
Exemplo n.º 2
0
        public VisitorHomePageModelContainer ReadStatisticsForHomePage()
        {
            var topVisits = VisitBiz.Read().GroupBy(r => r.ContentId)
                            .Select(group => new { ContentId = group.Key, TotalVisit = group.Sum(r => r.Count) })
                            .OrderByDescending(r => r.TotalVisit)
                            .Take(AppConfigurationManager.TopArticlesNumber);

            var topArticlesVisits = from a in ArticleBiz.ReadPublishedArticles()
                                    join av in topVisits
                                    on a.Id equals av.ContentId
                                    select new { a, av.TotalVisit };

            var topArticles = topArticlesVisits.OrderByDescending(t => t.TotalVisit).Select(t => t.a);

            return(new VisitorHomePageModelContainer()
            {
                TopArticles =
                    topArticles.MapTo <ContentInfo6PM>()
                    .ToList(),
                LatestArticles =
                    ArticleBiz.ReadLatestArticles(AppConfigurationManager.LatestArticlesNumber)
                    .MapTo <ContentInfo6PM>()
                    .ToList(),
                FeaturedArticles = FeaturedContentBiz.ReadFeaturedArticles().MapTo <ContentInfo6PM>().ToList(),
            });
        }
Exemplo n.º 3
0
 public IEnumerable <ContentInfo3PM> ReadArticles(int pageIndex, int pageSize)
 {
     return(ArticleBiz.ReadPublishedArticles()
            .OrderBy(blog => blog.Title)
            .Skip((pageIndex - 1) * pageSize)
            .Take(pageSize)
            .MapTo <ContentInfo3PM>()
            .ToList());
 }