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)
246246 {
247247
248248 var globalFilter = _config [ Constants . SEARCH_KEY ] ;
249-
249+ var globalMatch = false ;
250+ var individualMatch = true ;
250251 foreach ( var map in _propertyMap . Where ( m => m . Value . Searchable ) )
251252 {
252253 var propValue = Convert . ToString ( map . Value . Property . GetValue ( item , null ) ) . ToLower ( ) ;
253254 if ( ! string . IsNullOrWhiteSpace ( globalFilter ) && propValue . Contains ( globalFilter . ToLower ( ) ) )
254255 {
255- return true ;
256+ globalMatch = true ;
256257 }
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 ( ) ) )
258259 {
259- return true ;
260+ individualMatch = false ;
260261 }
261262 }
262- return false ;
263+
264+ if ( ! string . IsNullOrWhiteSpace ( globalFilter ) )
265+ {
266+ return globalMatch && individualMatch ;
267+ }
268+
269+ return individualMatch ;
270+
263271 }
264272
265273 /// <summary>
Original file line number Diff line number Diff line change 44 <TargetFramework >netstandard1.3</TargetFramework >
55 <AssemblyName >DatatablesParser</AssemblyName >
66 <PackageId >DatatablesParser-core</PackageId >
7- <PackageVersion >1.2.0 </PackageVersion >
7+ <PackageVersion >1.2.1 </PackageVersion >
88 <PackageRequireLicenseAcceptance >false</PackageRequireLicenseAcceptance >
99 <PackageTags >C# Datatables Datatables.net javascript parser json Linq entity framework asp.net mvc grid table database query builder core</PackageTags >
1010 <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()
8484
8585 }
8686
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+ }
87107
88108 }
89109}
Original file line number Diff line number Diff line change @@ -105,6 +105,28 @@ public void TotalDisplayCustomFormatTest()
105105
106106 }
107107
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+
108130
109131 }
110132}
Original file line number Diff line number Diff line change @@ -107,6 +107,28 @@ public void TotalDisplayCustomFormatTest()
107107
108108 }
109109
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+
110132
111133 }
112134}
Original file line number Diff line number Diff line change @@ -107,6 +107,26 @@ public void TotalDisplayCustomFormatTest()
107107
108108 }
109109
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+ }
110130
111131 }
112132}
You can’t perform that action at this time.
0 commit comments