public async Task <IActionResult> GetAll([FromQuery] PaginationQuerry paginationQuerry)
        {
            var pagination = _mapper.Map <PaginationFilter>(paginationQuerry);
            var posts      = await _postService.GetAll_Async(pagination);

            var postResponse = _mapper.Map <List <PostResponse> >(posts);

            if (paginationQuerry == null || paginationQuerry.PageNumber < 1 || paginationQuerry.PageSize < 1)
            {
                return(Ok(new PageResponse <PostResponse>(postResponse)));
            }
            var nextPage = pagination.PageNumber >= 1 ? _uriService.GetAllPostsUri(new PaginationQuerry {
                PageNumber = pagination.PageNumber + 1, PageSize = pagination.PageSize
            }).ToString():null;
            var previousPage = pagination.PageNumber - 1 >= 1 ? _uriService.GetAllPostsUri(new PaginationQuerry {
                PageNumber = pagination.PageNumber - 1, PageSize = pagination.PageSize
            }).ToString() : null;


            var paginationResponse = new PageResponse <PostResponse> {
                Data         = postResponse,
                PageNumber   = pagination.PageNumber,
                PageSize     = pagination.PageSize,
                NextPage     = postResponse.Any() ? nextPage : null,
                PreviousPage = previousPage
            };

            return(Ok(paginationResponse));
        }
Ejemplo n.º 2
0
        public async Task <IActionResult> GetAll([FromQuery] PaginationQuerry paginationQuerry)
        {
            var paginationResonse = await _service.GetPagination_Async(paginationQuerry);

            if (paginationResonse == null)
            {
                return(BadRequest());
            }
            return(Ok(_map.Map <PagePagination <DepartmentDTO> >(paginationResonse)));
        }
        public Uri GetAllPostsUri(PaginationQuerry pagination = null)
        {
            var uri = new Uri(_baseUri);

            if (pagination == null)
            {
                return(uri);
            }
            var modifiedUri = QueryHelpers.AddQueryString(_baseUri, "pageNumber", pagination.PageNumber.ToString());

            modifiedUri = QueryHelpers.AddQueryString(modifiedUri, "pageSize", pagination.PageSize.ToString());
            return(new Uri(modifiedUri));
        }
        public async Task <PagePagination <T> > GetPagination_Async(PaginationQuerry paginationQuerry = null, Expression <Func <T, bool> > filter = null, string includeProperties = null)
        {
            IQueryable <T> query = dbSet;

            if (filter != null)
            {
                query = query.Where(filter);
            }
            if (includeProperties != null)
            {
                foreach (var includeProperty in includeProperties.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries))
                {
                    query = query.Include(includeProperty);
                }
            }
            query = (paginationQuerry.pageNumber != null && paginationQuerry.pageSize != null) ? query.Skip((paginationQuerry.pageNumber.GetValueOrDefault() - 1) * paginationQuerry.pageSize.GetValueOrDefault()).Take(paginationQuerry.pageSize.GetValueOrDefault()) : query;

            if (!string.IsNullOrEmpty(paginationQuerry.sortColum))
            {
                if (paginationQuerry.sortOrder == null || paginationQuerry.sortOrder.ToLower() == "asc")
                {
                    query = query.OrderBy($"{paginationQuerry.sortColum} ASC");
                }
                else
                {
                    query = query.OrderBy($"{paginationQuerry.sortColum} DESC");
                }
            }


            int totalItems = query.Count();

            return(new PagePagination <T> {
                data = await query.ToListAsync(),
                pageNumber = paginationQuerry.pageNumber.GetValueOrDefault(),
                pageSize = paginationQuerry.pageSize.GetValueOrDefault(),
                sortColum = paginationQuerry.sortColum,
                sortOrder = paginationQuerry.sortOrder,
                totalRows = totalItems
            });
        }
Ejemplo n.º 5
0
 public async Task <PagePagination <Department> > GetPagination_Async(PaginationQuerry paginationQuerry = null, Expression <Func <Department, bool> > filter = null, string includeProperties = null)
 {
     return(await _repo.GetPagination_Async_repo(paginationQuerry, filter, includeProperties));
 }