Skip to content

Commit 06b5a0d

Browse files
Merge pull request #37 from PandaTechAM/development
Add custom FlagOperator for flag-based filtering
2 parents e616817 + 56729ed commit 06b5a0d

File tree

3 files changed

+24
-3
lines changed

3 files changed

+24
-3
lines changed

src/GridifyExtensions/Extensions/WebApplicationBuilderExtensions.cs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
using Gridify;
22
using GridifyExtensions.Models;
3+
using GridifyExtensions.Operators;
34
using Microsoft.AspNetCore.Builder;
45
using System.Reflection;
56

@@ -22,8 +23,9 @@ public static WebApplicationBuilder AddGridify(this WebApplicationBuilder builde
2223
private static void AddGridify(Assembly[] assemblies)
2324
{
2425
GridifyGlobalConfiguration.EnableEntityFrameworkCompatibilityLayer();
26+
GridifyGlobalConfiguration.CustomOperators.Register<FlagOperator>();
2527

26-
QueryableExtensions.EntityGridifyMapperByType =
28+
QueryableExtensions.EntityGridifyMapperByType =
2729
assemblies.SelectMany(assembly => assembly
2830
.GetTypes()
2931
.Where(t => t.IsClass

src/GridifyExtensions/GridifyExtensions.csproj

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,13 +8,13 @@
88
<PackageReadmeFile>Readme.md</PackageReadmeFile>
99
<Authors>Pandatech</Authors>
1010
<Copyright>MIT</Copyright>
11-
<Version>1.6.5</Version>
11+
<Version>1.7.0</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>Removed AsNoTracking from ApplyFilter methods</PackageReleaseNotes>
17+
<PackageReleaseNotes>Added new operator for supporting flag based filtering</PackageReleaseNotes>
1818
</PropertyGroup>
1919

2020
<ItemGroup>
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
using Gridify.Syntax;
2+
using System.Linq.Expressions;
3+
4+
namespace GridifyExtensions.Operators
5+
{
6+
internal class FlagOperator : IGridifyOperator
7+
{
8+
public string GetOperator()
9+
{
10+
return "#hasFlag";
11+
}
12+
13+
public Expression<OperatorParameter> OperatorHandler()
14+
{
15+
16+
return (prop, value) => ((int)prop & (int)value) == (int)value;
17+
}
18+
}
19+
}

0 commit comments

Comments
 (0)