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