case insensitive support.

This commit is contained in:
David Lebee
2021-04-27 13:11:54 -04:00
parent 1ceb75e945
commit 353a7401ce
5 changed files with 40 additions and 1 deletions
+1
View File
@@ -18,6 +18,7 @@ namespace PoweredSoft.DynamicQuery
public FilterType Type { get; set; }
public string Path { get; set; }
public object Value { get; set; }
public bool? CaseInsensitive { get; set; }
}
public class CompositeFilter : ICompositeFilter
@@ -21,7 +21,7 @@
<ItemGroup>
<PackageReference Include="Microsoft.Extensions.DependencyInjection" Version="3.0.0" />
<PackageReference Include="PoweredSoft.Data" Version="2.0.0" />
<PackageReference Include="PoweredSoft.DynamicLinq" Version="1.1.11" />
<PackageReference Include="PoweredSoft.DynamicLinq" Version="1.1.12" />
</ItemGroup>
<ItemGroup>
@@ -366,6 +366,13 @@ namespace PoweredSoft.DynamicQuery
protected virtual void ApplySimpleFilter<TSource>(WhereBuilder whereBuilder, ISimpleFilter filter)
{
var resolvedConditionOperator = ResolveConditionOperatorFrom(filter.Type);
if (filter.CaseInsensitive == true)
{
filter.Path += ".ToLower()";
filter.Value = $"{filter.Value}"?.ToLower();
}
whereBuilder.Compare(filter.Path, resolvedConditionOperator, filter.Value, and: filter.And == true, negate: filter.Not == true);
}