Exemplo n.º 1
0
        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));
        }
Exemplo n.º 2
0
        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));
        }