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)); }
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 }); }
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)); }