Beispiel #1
0
        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;
            }
        }
Beispiel #3
0
        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));
        }
Beispiel #4
0
        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());
        }