< Summary

Information
Class: Fluorite.Strainer.Services.Filtering.CustomFilterMethodBuilderWithExpression<T>
Assembly: Fluorite.Strainer
File(s): /builds/fluorite/strainer/src/Strainer/Services/Filtering/CustomFilterMethodBuilderWithExpression.cs
Line coverage
100%
Covered lines: 11
Uncovered lines: 0
Coverable lines: 11
Total lines: 40
Line coverage: 100%
Branch coverage
100%
Covered branches: 2
Total branches: 2
Branch coverage: 100%
Method coverage

Feature is only available for sponsors

Upgrade to PRO version

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity Line coverage
.ctor(...)100%11100%
.ctor(...)100%11100%
get_Expression()100%11100%
get_FilterTermExpression()100%11100%
Build()100%22100%

File(s)

/builds/fluorite/strainer/src/Strainer/Services/Filtering/CustomFilterMethodBuilderWithExpression.cs

#LineLine coverage
 1using Fluorite.Strainer.Models.Filtering;
 2using Fluorite.Strainer.Models.Filtering.Terms;
 3using System.Linq.Expressions;
 4
 5namespace Fluorite.Strainer.Services.Filtering;
 6
 7public class CustomFilterMethodBuilderWithExpression<TEntity> : CustomFilterMethodBuilderWithName<TEntity>, ICustomFilte
 8{
 9    public CustomFilterMethodBuilderWithExpression(
 10        string name,
 11        Expression<Func<TEntity, bool>> expression)
 512        : base(name)
 13    {
 514        Expression = Guard.Against.Null(expression);
 515    }
 16
 17    public CustomFilterMethodBuilderWithExpression(
 18        string name,
 19        Func<IFilterTerm, Expression<Func<TEntity, bool>>> filterTermExpression)
 120        : base(name)
 21    {
 122        FilterTermExpression = Guard.Against.Null(filterTermExpression);
 123    }
 24
 425    public Expression<Func<TEntity, bool>>? Expression { get; }
 26
 627    public Func<IFilterTerm, Expression<Func<TEntity, bool>>>? FilterTermExpression { get; }
 28
 29    public ICustomFilterMethod<TEntity> Build()
 30    {
 531        if (FilterTermExpression is null)
 32        {
 433            return new CustomFilterMethod<TEntity>(Name, Expression!);
 34        }
 35        else
 36        {
 137            return new CustomFilterMethod<TEntity>(Name, FilterTermExpression);
 38        }
 39    }
 40}