File tree Expand file tree Collapse file tree 6 files changed +98
-6
lines changed
test/DatatablesParser.Tests Expand file tree Collapse file tree 6 files changed +98
-6
lines changed Original file line number Diff line number Diff line change @@ -246,20 +246,28 @@ private bool EnumerablFilter(T item)
246
246
{
247
247
248
248
var globalFilter = _config [ Constants . SEARCH_KEY ] ;
249
-
249
+ var globalMatch = false ;
250
+ var individualMatch = true ;
250
251
foreach ( var map in _propertyMap . Where ( m => m . Value . Searchable ) )
251
252
{
252
253
var propValue = Convert . ToString ( map . Value . Property . GetValue ( item , null ) ) . ToLower ( ) ;
253
254
if ( ! string . IsNullOrWhiteSpace ( globalFilter ) && propValue . Contains ( globalFilter . ToLower ( ) ) )
254
255
{
255
- return true ;
256
+ globalMatch = true ;
256
257
}
257
- if ( ! string . IsNullOrWhiteSpace ( map . Value . Filter ) && propValue . Contains ( map . Value . Filter . ToLower ( ) ) )
258
+ if ( ! string . IsNullOrWhiteSpace ( map . Value . Filter ) && ! propValue . Contains ( map . Value . Filter . ToLower ( ) ) )
258
259
{
259
- return true ;
260
+ individualMatch = false ;
260
261
}
261
262
}
262
- return false ;
263
+
264
+ if ( ! string . IsNullOrWhiteSpace ( globalFilter ) )
265
+ {
266
+ return globalMatch && individualMatch ;
267
+ }
268
+
269
+ return individualMatch ;
270
+
263
271
}
264
272
265
273
/// <summary>
Original file line number Diff line number Diff line change 4
4
<TargetFramework >netstandard1.3</TargetFramework >
5
5
<AssemblyName >DatatablesParser</AssemblyName >
6
6
<PackageId >DatatablesParser-core</PackageId >
7
- <PackageVersion >1.2.0 </PackageVersion >
7
+ <PackageVersion >1.2.1 </PackageVersion >
8
8
<PackageRequireLicenseAcceptance >false</PackageRequireLicenseAcceptance >
9
9
<PackageTags >C# Datatables Datatables.net javascript parser json Linq entity framework asp.net mvc grid table database query builder core</PackageTags >
10
10
<PackageProjectUrl >https://github.com/garvincasimir/csharp-datatables-parser</PackageProjectUrl >
Original file line number Diff line number Diff line change @@ -84,6 +84,26 @@ public void TotalDisplayIndividualTest()
84
84
85
85
}
86
86
87
+ [ Fact ]
88
+ public void TotalDisplayIndividualMutiTest ( )
89
+ {
90
+ var context = TestHelper . GetInMemoryContext ( ) ;
91
+ var p = TestHelper . CreateParams ( ) ;
92
+ var displayLength = 1 ;
93
+
94
+
95
+ //Set filter parameter
96
+ p [ Constants . SEARCH_KEY ] = new StringValues ( "a" ) ;
97
+ p [ Constants . GetKey ( Constants . SEARCH_VALUE_PROPERTY_FORMAT , "0" ) ] = "omie" ;
98
+ p [ Constants . GetKey ( Constants . SEARCH_VALUE_PROPERTY_FORMAT , "1" ) ] = "mmer" ;
99
+
100
+ var parser = new Parser < Person > ( p , context . People ) ;
101
+
102
+ Console . WriteLine ( "InMemory - Total People TotalDisplayIndividualMutiTest: {0}" , context . People . Count ( ) ) ;
103
+
104
+ Assert . Equal ( displayLength , parser . Parse ( ) . recordsFiltered ) ;
105
+
106
+ }
87
107
88
108
}
89
109
}
Original file line number Diff line number Diff line change @@ -105,6 +105,28 @@ public void TotalDisplayCustomFormatTest()
105
105
106
106
}
107
107
108
+ [ Fact ]
109
+ public void TotalDisplayIndividualMutiTest ( )
110
+ {
111
+ var context = TestHelper . GetInMemoryContext ( ) ;
112
+ var p = TestHelper . CreateParams ( ) ;
113
+ var displayLength = 1 ;
114
+
115
+
116
+ //Set filter parameter
117
+ p [ Constants . SEARCH_KEY ] = new StringValues ( "a" ) ;
118
+ p [ Constants . GetKey ( Constants . SEARCH_VALUE_PROPERTY_FORMAT , "0" ) ] = "omie" ;
119
+ p [ Constants . GetKey ( Constants . SEARCH_VALUE_PROPERTY_FORMAT , "1" ) ] = "mmer" ;
120
+
121
+ var parser = new Parser < Person > ( p , context . People ) ;
122
+
123
+ Console . WriteLine ( "Mssql - Total People TotalDisplayIndividualMutiTest: {0}" , context . People . Count ( ) ) ;
124
+
125
+ Assert . Equal ( displayLength , parser . Parse ( ) . recordsFiltered ) ;
126
+
127
+ }
128
+
129
+
108
130
109
131
}
110
132
}
Original file line number Diff line number Diff line change @@ -107,6 +107,28 @@ public void TotalDisplayCustomFormatTest()
107
107
108
108
}
109
109
110
+ [ Fact ]
111
+ public void TotalDisplayIndividualMutiTest ( )
112
+ {
113
+ var context = TestHelper . GetInMemoryContext ( ) ;
114
+ var p = TestHelper . CreateParams ( ) ;
115
+ var displayLength = 1 ;
116
+
117
+
118
+ //Set filter parameter
119
+ p [ Constants . SEARCH_KEY ] = new StringValues ( "a" ) ;
120
+ p [ Constants . GetKey ( Constants . SEARCH_VALUE_PROPERTY_FORMAT , "0" ) ] = "omie" ;
121
+ p [ Constants . GetKey ( Constants . SEARCH_VALUE_PROPERTY_FORMAT , "1" ) ] = "mmer" ;
122
+
123
+ var parser = new Parser < Person > ( p , context . People ) ;
124
+
125
+ Console . WriteLine ( "MySql - Total People TotalDisplayIndividualMutiTest: {0}" , context . People . Count ( ) ) ;
126
+
127
+ Assert . Equal ( displayLength , parser . Parse ( ) . recordsFiltered ) ;
128
+
129
+ }
130
+
131
+
110
132
111
133
}
112
134
}
Original file line number Diff line number Diff line change @@ -107,6 +107,26 @@ public void TotalDisplayCustomFormatTest()
107
107
108
108
}
109
109
110
+ [ Fact ]
111
+ public void TotalDisplayIndividualMutiTest ( )
112
+ {
113
+ var context = TestHelper . GetInMemoryContext ( ) ;
114
+ var p = TestHelper . CreateParams ( ) ;
115
+ var displayLength = 1 ;
116
+
117
+
118
+ //Set filter parameter
119
+ p [ Constants . SEARCH_KEY ] = new StringValues ( "a" ) ;
120
+ p [ Constants . GetKey ( Constants . SEARCH_VALUE_PROPERTY_FORMAT , "0" ) ] = "omie" ;
121
+ p [ Constants . GetKey ( Constants . SEARCH_VALUE_PROPERTY_FORMAT , "1" ) ] = "mmer" ;
122
+
123
+ var parser = new Parser < Person > ( p , context . People ) ;
124
+
125
+ Console . WriteLine ( "Pgsql - Total People TotalDisplayIndividualMutiTest: {0}" , context . People . Count ( ) ) ;
126
+
127
+ Assert . Equal ( displayLength , parser . Parse ( ) . recordsFiltered ) ;
128
+
129
+ }
110
130
111
131
}
112
132
}
You can’t perform that action at this time.
0 commit comments