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()); }
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(), }); }
public IEnumerable <ContentInfo3PM> ReadArticles(int pageIndex, int pageSize) { return(ArticleBiz.ReadPublishedArticles() .OrderBy(blog => blog.Title) .Skip((pageIndex - 1) * pageSize) .Take(pageSize) .MapTo <ContentInfo3PM>() .ToList()); }