Skip to content

Commit

Permalink
Implement async ToPagedList
Browse files Browse the repository at this point in the history
  • Loading branch information
a-gubskiy committed Aug 29, 2014
1 parent a4d6463 commit 90d62bc
Show file tree
Hide file tree
Showing 4 changed files with 12 additions and 7 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -4,20 +4,20 @@

namespace PagedList
{
public class PagedListEx<T> : BasePagedList<T>
public class AsyncPagedList<T> : BasePagedList<T>
{
private PagedListEx()
private AsyncPagedList()
{
}

public static async Task<IPagedList<T>> CreateAsync(IQueryable<T> superset, int pageNumber, int pageSize)
{
var list = new PagedListEx<T>();
var list = new AsyncPagedList<T>();
await list.InitAsync(superset, pageNumber, pageSize).ConfigureAwait(false);
return list;
}

async Task InitAsync(IQueryable<T> superset, int pageNumber, int pageSize)
private async Task InitAsync(IQueryable<T> superset, int pageNumber, int pageSize)
{
if (pageNumber < 1)
{
Expand Down Expand Up @@ -51,6 +51,5 @@ async Task InitAsync(IQueryable<T> superset, int pageNumber, int pageSize)
}
}


}
}
6 changes: 6 additions & 0 deletions src/X.PagedList.Async/Extensions.cs
Original file line number Diff line number Diff line change
Expand Up @@ -18,5 +18,11 @@ public static Task<List<T>> ToListAsync<T>(this IEnumerable<T> list)
{
return Task.Factory.StartNew(() => list.ToList());
}

public static Task<IPagedList<T>> ToPagedListAsync<T>(this IEnumerable<T> list, int pageNumber, int pageSize)
{
return Task.Factory.StartNew(() => (IPagedList<T>)(new StaticPagedList<T>(list.Skip(((pageNumber - 1) * pageSize)).Take(pageSize), pageNumber, pageSize, list.Count())));

}
}
}
2 changes: 1 addition & 1 deletion src/X.PagedList.Async/X.PagedList.Async.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@
</ItemGroup>
<ItemGroup>
<Compile Include="Extensions.cs" />
<Compile Include="PagedListEx.cs" />
<Compile Include="AsyncPagedList.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
</ItemGroup>
<ItemGroup>
Expand Down
2 changes: 1 addition & 1 deletion src/X.PagedList/BasePagedList.cs
Original file line number Diff line number Diff line change
Expand Up @@ -91,7 +91,7 @@ public T this[int index]
/// <summary>
/// Gets the number of elements contained on this page.
/// </summary>
public int Count
public virtual int Count
{
get { return Subset.Count; }
}
Expand Down

0 comments on commit 90d62bc

Please sign in to comment.