From f681f7147e10ec3c4a2fb2671a6a6860834ad972 Mon Sep 17 00:00:00 2001 From: Neovex Date: Fri, 25 Oct 2024 17:53:41 +0200 Subject: [PATCH] Removed unnecessary data iteration. GridDataProvider iterated twice over data source when paging is active - this has been optimized. --- .../Models/GridDataProviderRequest.cs | 16 ++++++---------- 1 file changed, 6 insertions(+), 10 deletions(-) diff --git a/blazorbootstrap/Models/GridDataProviderRequest.cs b/blazorbootstrap/Models/GridDataProviderRequest.cs index 42672bbf6..d326c4549 100644 --- a/blazorbootstrap/Models/GridDataProviderRequest.cs +++ b/blazorbootstrap/Models/GridDataProviderRequest.cs @@ -43,15 +43,15 @@ public GridDataProviderResult ApplyTo(IEnumerable data) if (index == 1) { orderedData = sortItem.SortDirection == SortDirection.Ascending - ? resultData.OrderBy(sortItem.SortKeySelector.Compile()) - : resultData.OrderByDescending(sortItem.SortKeySelector.Compile()); + ? resultData.OrderBy(sortItem.SortKeySelector.Compile()) + : resultData.OrderByDescending(sortItem.SortKeySelector.Compile()); } else { if (orderedData != null) orderedData = sortItem.SortDirection == SortDirection.Ascending - ? orderedData.ThenBy(sortItem.SortKeySelector.Compile()) - : orderedData.ThenByDescending(sortItem.SortKeySelector.Compile()); + ? orderedData.ThenBy(sortItem.SortKeySelector.Compile()) + : orderedData.ThenByDescending(sortItem.SortKeySelector.Compile()); } index++; @@ -61,15 +61,11 @@ public GridDataProviderResult ApplyTo(IEnumerable data) } // apply paging - var skip = 0; - var take = data.Count(); var totalCount = resultData!.Count(); // before paging - if (PageNumber > 0 && PageSize > 0) { - skip = (PageNumber - 1) * PageSize; - take = PageSize; - resultData = resultData!.Skip(skip).Take(take); + int skip = (PageNumber - 1) * PageSize; + resultData = resultData!.Skip(skip).Take(PageSize); } return new GridDataProviderResult { Data = resultData, TotalCount = totalCount };