Code: Select all
public Func GetFilter(Status status) => status switch
{
Status.Active => x => x.Status == Status.Active && x.ValidFrom x => true
};
public Expression GetFilterAsExpression(Status status) => status switch
{
Status.Active => x => x.Status == Status.Active && x.ValidFrom x => true
};
Code: Select all
public static Expression And(this Expression expr1, Expression expr2)
{
var secondBody = expr2.Body.Replace(expr2.Parameters[0], expr1.Parameters[0]);
return Expression.Lambda(Expression.AndAlso(expr1.Body, secondBody), expr1.Parameters);
}