Beispiel #1
0
        private static ExpressionEvaluator GetExpressionEvaluator(IModelNode dataSourceNode, CriteriaOperator criteriaOperator)
        {
            var typeInfo                   = dataSourceNode.GetGenericListArgument();
            var descendants                = ReflectionHelper.FindTypeDescendants(typeInfo);
            var propertyDescriptors        = descendants.SelectMany(info => info.Members).DistinctBy(info => info.Name).Select(info => new XafPropertyDescriptor(info, info.Name)).Cast <PropertyDescriptor>().ToArray();
            var evaluatorContextDescriptor = new EvaluatorContextDescriptorDefault(new PropertyDescriptorCollection(propertyDescriptors));

            return(new ExpressionEvaluator(evaluatorContextDescriptor, criteriaOperator, false, XpandModuleBase.Dictiorary.CustomFunctionOperators));
        }
Beispiel #2
0
        private static bool fit(object targetObject, string criteria)
        {
            Type objectType = targetObject.GetType();
            var  wrapper    = new LocalizedCriteriaWrapper(objectType, criteria);

            wrapper.UpdateParametersValues();
            var descriptor = new EvaluatorContextDescriptorDefault(objectType);
            var evaluator  = new ExpressionEvaluator(descriptor, wrapper.CriteriaOperator);

            return(evaluator.Fit(targetObject));
        }
 private static bool fit(object targetObject, string criteria)
 {
     Type objectType = targetObject.GetType();
     var wrapper = new LocalizedCriteriaWrapper(objectType, criteria);
     wrapper.UpdateParametersValues();
     var descriptor = new EvaluatorContextDescriptorDefault(objectType);
     var evaluator = new ExpressionEvaluator(descriptor, wrapper.CriteriaOperator);
     return evaluator.Fit(targetObject);
 }