public static PagingResult <T> ApplyPaging <T>(this IEnumerable <T> input, PagingParameters pagingParameters) { var totalCount = input.Count(); return(PagingResult.Create(input.Skip(pagingParameters.Offset).Take(pagingParameters.Limit).ToList(), pagingParameters.Offset, totalCount)); }
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)); }