Skip to content

Commit 716325e

Browse files
authored
feat(TableColumnFilter): contains filter support case-sensitive (#6626)
* feat: support case-sensitive * test: 更新单元测试
1 parent c7a839d commit 716325e

File tree

2 files changed

+7
-2
lines changed

2 files changed

+7
-2
lines changed

src/BootstrapBlazor/Extensions/LambdaExtensions.cs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -230,8 +230,9 @@ private static Expression GetExpression(this FilterKeyValueAction filter, Expres
230230

231231
private static BinaryExpression Contains(this Expression left, Expression right)
232232
{
233-
var method = typeof(string).GetMethod("Contains", [typeof(string)])!;
234-
return Expression.AndAlso(Expression.NotEqual(left, Expression.Constant(null)), Expression.Call(left, method, right));
233+
var method = typeof(string).GetMethod("Contains", [typeof(string), typeof(StringComparison)])!;
234+
var comparison = Expression.Constant(StringComparison.OrdinalIgnoreCase);
235+
return Expression.AndAlso(Expression.NotEqual(left, Expression.Constant(null)), Expression.Call(left, method, right, comparison));
235236
}
236237

237238
#region Count

test/UnitTest/Extensions/LambadaExtensionsTest.cs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -244,6 +244,10 @@ public void GetExpression_Contains()
244244
var filter = new FilterKeyValueAction() { FieldKey = "Name", FieldValue = "test", FilterAction = FilterAction.Contains };
245245
var invoker = filter.GetFilterLambda<Foo>().Compile();
246246
Assert.True(invoker.Invoke(new Foo() { Name = "1test1" }));
247+
Assert.True(invoker.Invoke(new Foo() { Name = "1Test1" }));
248+
Assert.True(invoker.Invoke(new Foo() { Name = "1Test123" }));
249+
Assert.True(invoker.Invoke(new Foo() { Name = "Test" }));
250+
Assert.True(invoker.Invoke(new Foo() { Name = "Test2" }));
247251
}
248252

249253
[Fact]

0 commit comments

Comments
 (0)