Esempio n. 1
0
        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));
        }
Esempio n. 2
0
 private IQueryable <Post> AddFiltersOnQuery(GetAllPostsFilter filter, IQueryable <Post> queryable)
 {
     if (!string.IsNullOrEmpty(filter?.UserId))
     {
         queryable = queryable.Where(x => x.AppUserId == filter.UserId);
     }
     return(queryable);
 }
Esempio n. 3
0
        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());
        }
Esempio n. 4
0
        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);
        }
Esempio n. 5
0
        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());
        }
Esempio n. 6
0
        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());
        }
Esempio n. 7
0
        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));
        }
Esempio n. 8
0
        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());
        }
Esempio n. 9
0
 public Task <List <Post> > GetPostsAsync(GetAllPostsFilter filter = null, PaginationFilter paginationFilter = null)
 {
     throw new NotImplementedException();
 }