protected override ValidationResult IsValid(object value, ValidationContext validationContext)
        {
            Console.WriteLine("executing ExecuteIfAttribute");

            var values = new Dictionary <string, object>();

            Utils.ObjectJsonDumper.Dump(m_expression.Parameters, 1);

            Console.WriteLine("parameters:");

            Utils.ObjectJsonDumper.Dump(m_expression.Parameters, 2);



            if (m_expression.Parameters.Count() > 0)
            {
                values["this"] = validationContext.ObjectInstance;
            }


            if ((bool)m_expression.Evaluate(values))
            {
                Console.WriteLine("executing ExecuteIfAttribute: true");
                return(m_rule.GetValidationResult(value, validationContext));
            }

            return(ValidationResult.Success);
        }
Beispiel #2
0
        public bool Evaluate(Dictionary <string, object> values = null)
        {
            foreach (var parameter in m_compiledExpression.Parameters)
            {
                switch (parameter.Name)
                {
                case "Array":
                    if (values == null)
                    {
                        values = new Dictionary <string, object>();
                    }

                    values.Add("Array", new ArrayHelper());

                    break;
                }
            }

            return((bool)m_compiledExpression.Evaluate(values));
        }
        protected override ValidationResult IsValid(object value, ValidationContext validationContext)
        {
            Console.WriteLine("executing ExecuteIfElseAttribute");

            var values = new Dictionary <string, object>();

            if (m_expression.Parameters.Count() > 0)
            {
                values["this"] = validationContext.ObjectInstance;
            }


            if ((bool)m_expression.Evaluate(values))
            {
                Console.WriteLine("executing ExecuteIfElseAttribute: true case");
                return(m_trueRule.GetValidationResult(value, validationContext));
            }
            else
            {
                Console.WriteLine("executing ExecuteIfElseAttribute: false case");
                return(m_falseRule.GetValidationResult(value, validationContext));
            }
        }