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));
 }
Beispiel #6
0
 public FilterRule FilterRuleFor <T>(FilterRequest <T> request)
 {
     return(findHandler(request).ToFilterRule(request));
 }
Beispiel #7
0
 private IFilterHandler findHandler <T>(FilterRequest <T> request)
 {
     return(allHandlers().First(h => h.Handles(request)));
 }
Beispiel #8
0
 public Expression <Func <T, bool> > WhereFilterFor <T>(FilterRequest <T> request)
 {
     return(findHandler(request).WhereFilterFor(request));
 }