public bool IsVisible(IModelNode node, string propertyName) { var criteria = node.GetPropertyAttribute <ModelMapperBrowsableAttribute>(propertyName).Criteria; if (criteria != null) { node = node.GetNode(propertyName); var criteriaOperator = CriteriaOperator.Parse(criteria); var expressionEvaluator = new ExpressionEvaluator(new EvaluatorContextDescriptorDefault(node.GetType()), criteriaOperator, customFunctions: CustomFunctions); var isVisible = expressionEvaluator.Evaluate(node); if (isVisible != null) { return((bool)isVisible); } } return(true); }