Skip to content

Commit d4f82f3

Browse files
committed
bug fix
1 parent a72fd22 commit d4f82f3

File tree

5 files changed

+31
-19
lines changed

5 files changed

+31
-19
lines changed

Readme.md

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -137,7 +137,6 @@ var pagedBooks = await dbContext.Books
137137
```
138138

139139
```csharp
140-
141140
**Gridify QueryModel**
142141

143142
By default, `GridifyQueryModel` limits `PageSize` to 500 records. To remove this restriction, initialize it with

src/GridifyExtensions/Extensions/QueryableExtensions.cs

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -170,21 +170,21 @@ public static async Task<CursoredResponse<TDto>> FilterOrderAndGetCursoredAsync<
170170
CancellationToken cancellationToken = default)
171171
where TEntity : class
172172
{
173-
var mapper = EntityGridifyMapperByType[typeof(TEntity)] as FilterMapper<TEntity>;
174-
175-
model.OrderBy ??= mapper!.GetDefaultOrderExpression();
176173

177-
query = query.ApplyFilteringAndOrdering(model, mapper);
174+
var mapper = EntityGridifyMapperByType[typeof(TEntity)] as FilterMapper<TEntity>;
178175

179-
var totalCount = await query.CountAsync(cancellationToken);
176+
var queryModel = model.ToGridifyQueryModel();
177+
queryModel.OrderBy ??= mapper!.GetDefaultOrderExpression();
180178

179+
query = query.ApplyFilteringAndOrdering(queryModel, mapper);
180+
181181
var dtoQuery = query.Select(selectExpression);
182182

183183
var data = await dtoQuery
184184
.Take(model.PageSize)
185185
.ToListAsync(cancellationToken);
186186

187-
return new CursoredResponse<TDto>(data, totalCount);
187+
return new CursoredResponse<TDto>(data, model.PageSize);
188188
}
189189

190190
public static Task<CursoredResponse<TEntity>> FilterOrderAndGetCursoredAsync<TEntity>(this IQueryable<TEntity> query,

src/GridifyExtensions/GridifyExtensions.csproj

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,15 +8,15 @@
88
<PackageReadmeFile>Readme.md</PackageReadmeFile>
99
<Authors>Pandatech</Authors>
1010
<Copyright>MIT</Copyright>
11-
<Version>1.6.0</Version>
11+
<Version>1.6.1</Version>
1212
<PackageId>Pandatech.GridifyExtensions</PackageId>
1313
<Title>Pandatech.Gridify.Extensions</Title>
1414
<PackageTags>Pandatech, library, Gridify, Pagination, Filters</PackageTags>
1515
<Description>Pandatech.Gridify.Extensions simplifies and extends the functionality of the Gridify NuGet package. It provides additional extension methods and functionality to streamline data filtering and pagination, making it more intuitive and powerful to use in .NET applications. Our enhancements ensure more flexibility, reduce boilerplate code, and improve overall developer productivity when working with Gridify.</Description>
1616
<RepositoryUrl>https://github.com/PandaTechAM/be-lib-gridify-extensions</RepositoryUrl>
17-
<PackageReleaseNotes>Cursored model has been added</PackageReleaseNotes>
17+
<PackageReleaseNotes>Bug fix on query model</PackageReleaseNotes>
1818
</PropertyGroup>
19-
19+
2020
<ItemGroup>
2121
<None Include="..\..\pandatech.png" Pack="true" PackagePath="\" />
2222
<None Include="..\..\Readme.md" Pack="true" PackagePath="\" />

src/GridifyExtensions/Models/GridifyCursoredQueryModel.cs

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33

44
namespace GridifyExtensions.Models;
55

6-
public class GridifyCursoredQueryModel : GridifyQuery
6+
public class GridifyCursoredQueryModel
77
{
88
private int _pageSize = 20;
99
public required int PageSize
@@ -21,15 +21,16 @@ public required int PageSize
2121
_pageSize = value;
2222
}
2323
}
24-
24+
2525
public string? Filter { get; set; }
26-
27-
public GridifyQueryModel ToGridifyQueryModel()
26+
27+
internal GridifyQueryModel ToGridifyQueryModel()
2828
{
2929
return new GridifyQueryModel
3030
{
31-
Page = 1,
31+
Page = 0,
3232
PageSize = PageSize,
33+
OrderBy = "",
3334
Filter = Filter
3435
};
3536
}

src/GridifyExtensions/Models/GridifyQueryModel.cs

Lines changed: 16 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,21 @@
33

44
namespace GridifyExtensions.Models
55
{
6-
public class GridifyQueryModel(bool validatePageSize = true) : GridifyQuery
6+
public class GridifyQueryModel : GridifyQuery
77
{
8-
public new required int Page
8+
private bool _validatePageSize;
9+
10+
public GridifyQueryModel()
11+
{
12+
_validatePageSize = true;
13+
}
14+
15+
public GridifyQueryModel(bool validatePageSize)
16+
{
17+
_validatePageSize = validatePageSize;
18+
}
19+
20+
public new required int Page
921
{
1022
get => base.Page;
1123
set
@@ -29,7 +41,7 @@ public class GridifyQueryModel(bool validatePageSize = true) : GridifyQuery
2941
throw new GridifyException($"{nameof(PageSize)} should be positive number.");
3042
}
3143

32-
if (value > 500 && validatePageSize)
44+
if (value > 500 && _validatePageSize)
3345
{
3446
value = 500;
3547
}
@@ -52,7 +64,7 @@ public class GridifyQueryModel(bool validatePageSize = true) : GridifyQuery
5264

5365
public void SetMaxPageSize()
5466
{
55-
validatePageSize = false;
67+
_validatePageSize = false;
5668
PageSize = int.MaxValue;
5769
}
5870
}

0 commit comments

Comments
 (0)