public async Task <IActionResult> GetAll([FromQuery] GetAllPostsQuery query, [FromQuery] PaginationQuery paginationQuery) { var paginationFilter = new PaginationFilter { PageNumber = paginationQuery.PageNumber, PageSize = paginationQuery.PageSize }; var getAllPostsFilter = new GetAllPostsFilter { UserId = query.UserId }; var posts = await _postService.GetPostsAsync(getAllPostsFilter, paginationFilter); var postResponse = posts.Select(post => new PostResponse { Id = post.Id, Name = post.Name }).ToList(); if (paginationFilter is null || paginationFilter.PageNumber < 1 || paginationFilter.PageSize < 1) { return(Ok(new PagedResponse <PostResponse>(postResponse))); } var paginationResponse = PaginationHelpers.CreatePaginatedResponse(_uriService, paginationFilter, postResponse); return(Ok(paginationResponse)); }
private IQueryable <Post> AddFiltersOnQuery(GetAllPostsFilter filter, IQueryable <Post> queryable) { if (!string.IsNullOrEmpty(filter?.UserId)) { queryable = queryable.Where(x => x.AppUserId == filter.UserId); } return(queryable); }
public async Task <List <Post> > GetPostsAsync(GetAllPostsFilter filter, PaginationFilter paginationFilter) { var posts = await _cosmosStore.Query().ToListAsync(); return(posts.Select(x => new Post { Id = Guid.Parse(x.Id), Name = x.Name }).ToList()); }
private static IQueryable <Post> AddFiltersOnQuery(GetAllPostsFilter filter, IQueryable <Post> queryable) { if (filter?.UserId != Guid.Empty) { queryable = queryable.Where(x => x.UserId == filter.UserId); } return(queryable); }
public async Task <List <Post> > GetPostsAsync(GetAllPostsFilter filter, PaginationFilter paginationFilter) { //var entity = dataContext.Model.FindEntityType(typeof(Post)); var queryable = dataContext.Posts.AsNoTracking().AsQueryable(); if (paginationFilter != null) { queryable = AddFiltersOnQuery(filter, queryable); var skip = (paginationFilter.PageNumber - 1) * paginationFilter.PageSize; return(await queryable.Include(x => x.Tags).Skip(skip).ToListAsync()); } return(await dataContext.Posts.Include(x => x.AppUser).Include(x => x.Tags).ToListAsync()); }
public async Task <List <Post> > GetPostsAsync(GetAllPostsFilter getAllPostsFilter = null, PaginationFilter paginationFilter = null) { var queryable = _dbContext.Posts.AsQueryable(); if (paginationFilter is null) { return(await queryable.ToListAsync()); } queryable = AddFiltersOnQuery(getAllPostsFilter, queryable); var skip = (paginationFilter.PageNumber - 1) * paginationFilter.PageSize; return(await queryable.Skip(skip).Take(paginationFilter.PageSize).ToListAsync()); }
public async Task <List <Post> > GetPostsAsync(GetAllPostsFilter filter = null, PaginationFilter paginationFilter = null) { var queryable = _pgMainDataContext.Posts.AsQueryable(); if (paginationFilter == null) { return(await queryable.Include(x => x.Tags).ToListAsync().ConfigureAwait(false)); } queryable = AddFiltersOnQuery(filter, queryable); var skip = (paginationFilter.PageNumber - 1) * paginationFilter.PageSize; return(await queryable.Include(x => x.Tags) .Skip(skip).Take(paginationFilter.PageSize).ToListAsync().ConfigureAwait(false)); }
public async Task <List <Post> > GetPostsAsync(GetAllPostsFilter filter = null, PaginationFilter paginationFilter = null) { var query = _DbContext.Posts.AsQueryable(); if (!string.IsNullOrEmpty(filter?.UserId)) { query = query.Where(x => x.UserId == filter.UserId); } if (paginationFilter is null) { return(await query.Include(x => x.Tags).ToListAsync()); } return(await query.Include(x => x.Tags).Skip((paginationFilter.PageNumber - 1) * paginationFilter.PageSize).Take(paginationFilter.PageSize).ToListAsync()); }
public Task <List <Post> > GetPostsAsync(GetAllPostsFilter filter = null, PaginationFilter paginationFilter = null) { throw new NotImplementedException(); }