Exemple #1
0
        public DynamicFilterExpression(IFilterMessages filter)
        {
            Verify.NotNull(filter, "filter");

            staticFilter     = filter;
            systemEvent      = Expression.Parameter(typeof(SystemEvent), "e");
            filterParameters = new FilterParameters {
                systemEvent
            };
        }
Exemple #2
0
        protected override Expression BuildExpression(FilterParameters parameters)
        {
            var systemEvent        = parameters.GetParameter(typeof(SystemEvent));
            var propertyName       = ExtendedProperties.GetExtendedProperty("property");
            var propertyExpression = Expression.Property(systemEvent, propertyName);

            return(expressionBuilder.Invoke(
                       ConvertPropertyValueIfRequired(propertyExpression),
                       GetConvertedValue(propertyExpression.Type)
                       ));
        }
        protected override Expression BuildExpression(FilterParameters parameters)
        {
            var filters = Children.ToList();

            switch (filters.Count)
            {
            case 0:
                return(Expression.Constant(true));

            case 1:
                return(filters[0].CreateExpression(parameters));

            default:
                var expression = filters[0].CreateExpression(parameters);

                for (var i = 1; i < filters.Count; i++)
                {
                    expression = expressionBuilder.Invoke(expression, filters[i].CreateExpression(parameters));
                }

                return(expression);
            }
        }
Exemple #4
0
 protected abstract Expression BuildExpression(FilterParameters parameters);
Exemple #5
0
        public Expression CreateExpression(FilterParameters parameters)
        {
            Verify.NotNull(parameters, "parameters");

            return(BuildExpression(parameters));
        }
Exemple #6
0
 protected override Expression BuildExpression(FilterParameters parameters)
 {
     return(Expression.Not(base.BuildExpression(parameters)));
 }