internal static IPaged <T> ToPaged <T>( this IQueryable <T> queryable, IPageQuery pageQuery, string[] defaultSortKeys) where T : class { var pagedIQueryable = queryable.GetPerPageIQueryable(pageQuery, defaultSortKeys, out var totalItemsCount); var items = pagedIQueryable.ToList(); return(new Paged <T>( items, ObjectDictionaryHelpers.GetPublicPropertyNames <T>(), defaultSortKeys, totalItemsCount, pageQuery.PageIndex, pageQuery.PageSize, pageQuery.IndexFrom, true)); }
internal static async Task <IPaged <T> > ToPagedAsync <T>( this IQueryable <T> queryable, Func <IQueryable <T>, CancellationToken, Task <List <T> > > toListAsync, IPageQuery pageQuery, string[] defaultSortKeys, CancellationToken ctok = default) where T : class { var pagedIQueryable = queryable.GetPerPageIQueryable(pageQuery, defaultSortKeys, out var totalItemsCount); var items = await toListAsync(pagedIQueryable, ctok); return(new Paged <T>( items, ObjectDictionaryHelpers.GetPublicPropertyNames <T>(), defaultSortKeys, totalItemsCount, pageQuery.PageIndex, pageQuery.PageSize, pageQuery.IndexFrom, true)); }