public static IQueryable <T> ApplyPaging <T>(this IQueryable <T> efQuery, IPaginateable pagination) { return(efQuery .Skip((pagination.PageNumber - 1) * pagination.PageSize) .Take(pagination.PageSize)); }
public Uri GetUri(string requestRoute, IPaginateable paginationData = null) { var uri = new Uri(_baseUri + requestRoute); if (paginationData == null) { return(uri); } return(new Uri(uri.ToString() .AppendQueryString(PageNumber, paginationData.PageNumber.ToString()) .AppendQueryString(PageSize, paginationData.PageSize.ToString()))); }
public PaginationQuery(IPaginateable pagination) { PageNumber = pagination?.PageNumber < 1 ? _defaultPageNumber : pagination.PageNumber; PageSize = pagination.PageSize <1 ? _defaultPageSize : pagination.PageSize> _maxPageSize ? _maxPageSize : pagination.PageSize; IsApplied = !(pagination.PageSize < 1 && pagination.PageNumber < 1); }
public PaginationQuery(IPaginateable pagination, PaginationSettings settings) { PageNumber = pagination?.PageNumber < 1 ? _defaultPageNumber : pagination.PageNumber; PageSize = pagination.PageSize <1 ? settings.DefaultPageSize : pagination.PageSize> settings.MaxPageSize ? settings.MaxPageSize : pagination.PageSize; IsApplied = !(pagination.PageSize < 1 && pagination.PageNumber < 1); }
public static PagedResponse <T> CreatePaginatedResponse <T>( IUriService uriService, IPaginateable pagination, List <T> response, string requestRoute, int?total) { var nextPage = pagination.PageNumber >= 1 ? uriService.GetUri(requestRoute, new PaginationQuery { PageNumber = pagination.PageNumber + 1, PageSize = pagination.PageSize }).ToString() : null; var previousPage = pagination.PageNumber - 1 >= 1 ? uriService.GetUri(requestRoute, new PaginationQuery { PageNumber = pagination.PageNumber - 1, PageSize = pagination.PageSize }).ToString() : null; return(new PagedResponse <T> { Data = response, PageNumber = pagination.PageNumber >= 1 ? pagination.PageNumber : (int?)null, PageSize = pagination.PageSize > response.Count ? response.Count : pagination.PageSize >= 1 ? pagination.PageSize : (int?)null, NextPage = total > pagination.PageSize ? nextPage : null, PreviousPage = previousPage, Total = total }); }
public static string AppendPaginationQuery(this string query, IPaginateable pagination) { return(pagination == null ? query : $"{query}?pageNumber={pagination.PageNumber}&pageSize={pagination.PageSize}"); }
public static IQueryable <TEntity> ApplyPaging <TEntity>(this IQueryable <TEntity> efQuery, IPaginateable pagination) => efQuery .Skip((pagination.PageNumber - 1) * pagination.PageSize) .Take(pagination.PageSize);