-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathPagedList.cs
More file actions
31 lines (28 loc) · 1.03 KB
/
PagedList.cs
File metadata and controls
31 lines (28 loc) · 1.03 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
namespace Entities.RequestFeatures
{
public class PagedList<T> : List<T>
{
public MetaData MetaData { get; set; }
public PagedList(List<T> items, int count, RequestParameters requestParameters)
{
MetaData = new MetaData()
{
TotalCount = count,
PageSize = requestParameters.PageSize,
CurrentPage = requestParameters.PageNumber,
TotalPage = (int)Math.Ceiling(count / (double)requestParameters.PageSize)
};
AddRange(items);
}
public static PagedList<T> ToPagedList(IEnumerable<T> source, RequestParameters requestParameters)
{
var count = source.Count();
var items = source
.Skip((requestParameters.PageNumber - 1) * requestParameters.PageSize)
.Take(requestParameters.PageSize)
.ToList();
return new PagedList<T>(items, count, requestParameters);
}
}
}