Example #1
0
        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);
        }