public IActionResult GetBlogPosts(BlogPostsFilter filter) { IEnumerable <PostDto> posts = _blogQueries.GetBlogPostsAsync(out int numberOfRecords, filter); PagedDataResult result = new PagedDataResult(posts, numberOfRecords); return(Ok(result)); }
public async Task <PagedDataResult <T> > GetPagedDataList(int pageNumber = 1, int pageSize = 100, string sort = "Id") { try { pageNumber = pageNumber >= 1 ? pageNumber : 1; pageSize = pageSize >= 5 ? pageSize : 5; var dataQuery = this.GetAll(); var result = new PagedDataResult <T> { PageNumber = pageNumber, PageSize = pageSize, DataCount = dataQuery.Count() }; result.PagesCount = (int)Math.Ceiling((double)result.DataCount / pageSize); result.DataList = await this.GetAll() .ApplySort <T>(sort) .Skip((pageNumber - 1) * pageSize).Take(pageSize).AsNoTracking().ToListAsync(); return(result); } catch (Exception) { throw; } }
protected virtual void AddPaginationHeader(PagedDataResult <M> pagedData) { var paginationHeader = new { currentPage = pagedData.PageNumber, pageSize = pagedData.PageSize, totalCount = pagedData.DataCount, totalPages = pagedData.PagesCount }; HttpContext.Response.Headers.Add(key: "X-Pagination", value: Newtonsoft.Json.JsonConvert.SerializeObject(paginationHeader)); }
public virtual async Task <ActionResult <List <VM> > > GetPagedAsync(string sort = "id", int pageNumber = 1, int pageSize = 100) { try { using (_dataManager) { PagedDataResult <M> pagedDataList = await _dataManager.GetPagedDataList(pageNumber, pageSize, sort); AddPaginationHeader(pagedDataList); return(await fillItemsListMissingData(_mapper.Map <List <VM> >(pagedDataList.DataList))); } } catch (Exception ex) { _logger.LogError($"Error while getting All data !. error message : {ex.Message}"); } return(BadRequest()); }