From c20c17dfc2e021fcd139653c93f830d42e023319 Mon Sep 17 00:00:00 2001 From: jdunn Date: Fri, 5 May 2017 19:50:34 -0400 Subject: [PATCH 1/2] added asynchronous pagination call example --- EntityFrameworkPaginate/PaginateService.cs | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/EntityFrameworkPaginate/PaginateService.cs b/EntityFrameworkPaginate/PaginateService.cs index efffdf0..80cdbcd 100644 --- a/EntityFrameworkPaginate/PaginateService.cs +++ b/EntityFrameworkPaginate/PaginateService.cs @@ -1,5 +1,7 @@ using System; using System.Linq; +using System.Runtime.Remoting.Messaging; +using System.Threading.Tasks; namespace EntityFrameworkPaginate { @@ -16,7 +18,7 @@ public static class PaginateService /// A Page object with filtered data for the given page number and page size. public static Page Paginate(this IQueryable query, int pageNumber, int pageSize) { - var result = new Page + Page result = new Page { CurrentPage = pageNumber, PageSize = pageSize, @@ -36,9 +38,10 @@ public static Page Paginate(this IQueryable query, int pageNumber, int /// The number or records expected in the page. /// Conditional sorts. /// A Page object with filtered data for the given page number and page size. - public static Page Paginate(this IQueryable query, int pageNumber, int pageSize, Sorts sorts) + public static async Task> Paginate(this IQueryable query, int pageNumber, int pageSize, Sorts sorts) { - return query.ApplySort(sorts).Paginate(pageNumber, pageSize); + IQueryable result = await query.ApplySort(sorts); + return result.Paginate(pageNumber, pageSize); } /// @@ -51,9 +54,9 @@ public static Page Paginate(this IQueryable query, int pageNumber, int /// Conditional sorts. /// Conditional filters. /// A Page object with filtered data for the given page number and page size. - public static Page Paginate(this IQueryable query, int pageNumber, int pageSize, Sorts sorts, Filters filters) + public static async Task> Paginate(this IQueryable query, int pageNumber, int pageSize, Sorts sorts, Filters filters) { - return query.ApplyFilter(filters).Paginate(pageNumber, pageSize, sorts); + return await query.ApplyFilter(filters).Paginate(pageNumber, pageSize, sorts); } private static IQueryable ApplyFilter(this IQueryable query, Filters filters) @@ -61,11 +64,11 @@ private static IQueryable ApplyFilter(this IQueryable query, Filters return !filters.IsValid() ? query : filters.Get().Aggregate(query, (current, filter) => current.Where(filter.Expression)); } - private static IQueryable ApplySort(this IQueryable query, Sorts sorts) + private static async Task> ApplySort(this IQueryable query, Sorts sorts) { if (!sorts.IsValid()) return query; - var sort = sorts.Get(); - return Sorts.ApplySort(query, sort); + dynamic sort = sorts.Get(); + return await Sorts.ApplySort(query, sort); } } } \ No newline at end of file From cd8ca2ca1b65c01aba65a79f626fd14895d097c6 Mon Sep 17 00:00:00 2001 From: wdunn001 Date: Fri, 5 May 2017 20:20:42 -0400 Subject: [PATCH 2/2] added more async --- EntityFrameworkPaginate/App.config | 17 +++++++++++++++++ .../EntityFrameworkPaginate.csproj | 13 +++++++++++++ EntityFrameworkPaginate/PaginateService.cs | 9 +++++---- EntityFrameworkPaginate/packages.config | 4 ++++ 4 files changed, 39 insertions(+), 4 deletions(-) create mode 100644 EntityFrameworkPaginate/App.config create mode 100644 EntityFrameworkPaginate/packages.config diff --git a/EntityFrameworkPaginate/App.config b/EntityFrameworkPaginate/App.config new file mode 100644 index 0000000..7e1d79c --- /dev/null +++ b/EntityFrameworkPaginate/App.config @@ -0,0 +1,17 @@ + + + + +
+ + + + + + + + + + + + \ No newline at end of file diff --git a/EntityFrameworkPaginate/EntityFrameworkPaginate.csproj b/EntityFrameworkPaginate/EntityFrameworkPaginate.csproj index 301c046..be1d4f1 100644 --- a/EntityFrameworkPaginate/EntityFrameworkPaginate.csproj +++ b/EntityFrameworkPaginate/EntityFrameworkPaginate.csproj @@ -31,7 +31,16 @@ 4 + + ..\packages\EntityFramework.6.1.3\lib\net45\EntityFramework.dll + True + + + ..\packages\EntityFramework.6.1.3\lib\net45\EntityFramework.SqlServer.dll + True + + @@ -49,6 +58,10 @@ + + + +