public PagedList <Post> GetPostsForAuthor (Guid authorId, IPostResourceParameters parameters) { IQueryable <Post> query = context.Posts.Where(p => p.AuthorId == authorId); return(DevelopPostsQuery(query, parameters)); }
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)); }
public PagedList <Post> GetPosts(IPostResourceParameters parameters) { IQueryable <Post> query = context.Posts; return(DevelopPostsQuery(query, parameters)); }
protected bool CantValidate(IPostResourceParameters parameters) { return(validator.OrderIsInvalid <Post, IPostOutputDto>(parameters.OrderBy) || validator.FieldsAreInvalid <IPostOutputDto>(parameters.Fields)); }