JustBlog.Core.BlogRepository.PostsForSearch C# (CSharp) Method

PostsForSearch() public method

Return collection of posts that matches the search text.
public PostsForSearch ( string search, int pageNo, int pageSize ) : IList
search string search text
pageNo int Page index
pageSize int Page size
return IList
        public IList<Post> PostsForSearch(string search, int pageNo, int pageSize)
        {
            var posts = _session.Query<Post>()
                            .Where(p => p.Published && (p.Title.Contains(search) || p.Category.Name.Equals(search) || p.Tags.Any(t => t.Name.Equals(search))))
                            .OrderByDescending(p => p.PostedOn)
                            .Skip(pageNo * pageSize)
                            .Take(pageSize)
                            .Fetch(p => p.Category)
                            .ToList();

              var postIds = posts.Select(p => p.Id).ToList();

              return _session.Query<Post>()
            .Where(p => postIds.Contains(p.Id))
            .OrderByDescending(p => p.PostedOn)
            .FetchMany(p => p.Tags)
            .ToList();
        }