public FilterRule ToFilterRule <T>(FilterRequest <T> request) { return(new FilterRule() { Accessor = request.Accessor, Operator = _key, Value = request.GetValue() }); }
public Expression <Func <T, bool> > WhereFilterFor <T>(FilterRequest <T> request) { var memberExpression = request.Property.GetMemberExpression(true); var constantExpression = Expression.Constant(request.GetValue()); var expression = Expression.Call(memberExpression, _stringMethod, constantExpression); var parameterExpression = Expression.Parameter(typeof(T), "target"); return(Expression.Lambda <Func <T, bool> >(expression, parameterExpression)); }
public bool Handles <T>(FilterRequest <T> request) { return(_key.Key == request.Operator && request.PropertyType == typeof(string)); }
public Expression <Func <T, bool> > WhereFilterFor <T>(FilterRequest <T> request) { return(new TOperation().GetPredicate(request.Property, request.GetValue())); }
public bool Handles <T>(FilterRequest <T> request) { return(_key.Key == request.Operator && Matches(request.Accessor)); }
public FilterRule FilterRuleFor <T>(FilterRequest <T> request) { return(findHandler(request).ToFilterRule(request)); }
private IFilterHandler findHandler <T>(FilterRequest <T> request) { return(allHandlers().First(h => h.Handles(request))); }
public Expression <Func <T, bool> > WhereFilterFor <T>(FilterRequest <T> request) { return(findHandler(request).WhereFilterFor(request)); }