public async Task <List <Post> > GetPostsAsync(GetAllPostFilter filter = null, PaginationFilter paginationFilter = null) { var posts = await _cosmosStore.Query().ToListAsync(); return(posts.Select(p => new Post { Id = Guid.Parse(p.Id), Name = p.Name }).ToList()); }
private static IQueryable <Post> AddFilterOnQuery(GetAllPostFilter filter, IQueryable <Post> queryable) { if (!string.IsNullOrEmpty(filter?.UserId)) { queryable = queryable.Where(x => x.UserId == filter.UserId); } return(queryable); }
public async Task <List <Post> > GetPostsAsync(GetAllPostFilter filter = null, PaginationFilter paginationFilter = null) { var queryable = _dataContext.Posts.AsQueryable(); if (paginationFilter == null) { return(await queryable.Include(t => t.Tags).ToListAsync()); } queryable = AddFilterOnQuery(filter, queryable); var skip = (paginationFilter.PageNumber - 1) * paginationFilter.PageSize; return(await queryable.Include(t => t.Tags) .Skip(skip) .Take(paginationFilter.PageSize) .ToListAsync()); }