Beispiel #1
0
        public static PagingResult <T> ToPagedResult <T>(this IEnumerable <T> input, PagingParameters pagingParameters)
        {
            if (input == null)
            {
                throw new ArgumentNullException(nameof(input));
            }
            if (pagingParameters == null)
            {
                throw new ArgumentNullException(nameof(pagingParameters));
            }

            var offset = pagingParameters.Cursor.IsStart ? 0 : long.Parse(pagingParameters.Cursor.ToString());

            var totalCount = input.LongCount();

            var resultItems = input.Skip((int)offset).Take(pagingParameters.Limit).ToList();

            var continuationCursor = PagingCursor.FromOffset(offset + resultItems.Count);

            return(new PagingResult <T>(resultItems, totalCount, continuationCursor));
        }
 public PagingParameters(PagingCursor cursor, int limit = DefaultLimit)
 {
     Cursor = cursor;
     Limit  = limit;
 }
Beispiel #3
0
 public PagingResult(IReadOnlyList <T> items, long totalItemCount, PagingCursor continuationCursor)
 {
     Items              = items ?? throw new ArgumentNullException(nameof(items));
     TotalItemCount     = totalItemCount;
     ContinuationCursor = continuationCursor;
 }