Exemple #1
0
        public async Task <PagedList <Contact> > GetContactsPageAsync(PagedListRequest request)
        {
            var contacts = await _contactRepository.GetPagedList(request.PageNumber, request.PageSize);

            if (contacts == null || contacts.Count <= 0)
            {
                throw new EntityPageNotFoundException(nameof(Contact), request.PageNumber);
            }

            return(contacts);
        }
Exemple #2
0
        public void DbQueriesExtensions_ApplyPagedListRequestWithDifferentPagingParameters_ReturnsExpectedItemsCount(int skip, int take)
        {
            var pagedListRequest = new PagedListRequest
            {
                Skip = skip,
                Take = take
            };

            var result = SpectificationTestEntityList.AsQueryable()
                         .ApplyPagedListRequest(pagedListRequest, new ListResponseBase())
                         .ToList();


            var shouldBeCount = SpectificationTestEntityList
                                .Skip(skip)
                                .Take(take)
                                .Count();

            result.Should().HaveCount(shouldBeCount);
        }
        public async Task <IActionResult> GetContactsPageAsync([FromQuery] PagedListRequest request)
        {
            var result = await _contactService.GetContactsPageAsync(request);

            return(Ok(result));
        }
        public static IQueryable <T> ApplyPagedListRequest <T>(this IQueryable <T> queryable, PagedListRequest pagedListRequest, ListResponseBase listResponse)
        {
            listResponse.TotalCount = queryable.Count();

            if (pagedListRequest.HasSortings)
            {
                queryable = queryable.OrderBy(pagedListRequest.SortingAsSqlQueryString);
            }

            queryable = queryable
                        .Skip(pagedListRequest.Skip)
                        .Take(pagedListRequest.Take);

            return(queryable);
        }