Ejemplo n.º 1
0
        public static async Task <PaginatedList <T> > CreateAsync(IOrderedQueryable <T> source, FilterGas filter)
        {
            //кількість елементів
            int count = await source.CountAsync();

            filter.TotalPages = (int)Math.Ceiling(count / (double)filter.PageSize);
            //якщо поле "поточна сторінка" більше ніж кількість сторінок після зміни фільтру:
            while (filter.PageIndex > filter.TotalPages)
            {
                filter.PageIndex--;
            }

            //вибірка потрібної сторінки
            items = await source.Skip((filter.PageIndex - 1) *filter.PageSize).Take(filter.PageSize).ToListAsync();

            return(new PaginatedList <T>(count, filter));
        }
Ejemplo n.º 2
0
        //приватний конструктор (не може бути асинхронним)
        PaginatedList(int count, FilterGas filter)
        {
            FilterInPL = filter;

            this.AddRange(items);
        }