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)); }
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); }