コード例 #1
0
        public PagedList <Post> GetPostsForAuthor
            (Guid authorId, IPostResourceParameters parameters)
        {
            IQueryable <Post> query = context.Posts.Where(p => p.AuthorId == authorId);

            return(DevelopPostsQuery(query, parameters));
        }
コード例 #2
0
        private PagedList <Post> DevelopPostsQuery
            (IQueryable <Post> query, IPostResourceParameters parameters)
        {
            query = query.AsNoTracking();

            if (parameters.Tags != null)
            {
                query = ExcludePostWithoutTags(query, parameters.Tags);
            }

            if (!string.IsNullOrWhiteSpace(parameters.OrderBy))
            {
                query = SortPosts(query, parameters.OrderBy);
            }

            query = query.Include(post => post.Author);

            return(PagedList <Post> .Create(query, parameters.PageNumber, parameters.PageSize));
        }
コード例 #3
0
        public PagedList <Post> GetPosts(IPostResourceParameters parameters)
        {
            IQueryable <Post> query = context.Posts;

            return(DevelopPostsQuery(query, parameters));
        }
コード例 #4
0
 protected bool CantValidate(IPostResourceParameters parameters)
 {
     return(validator.OrderIsInvalid <Post, IPostOutputDto>(parameters.OrderBy) ||
            validator.FieldsAreInvalid <IPostOutputDto>(parameters.Fields));
 }