示例#1
0
        private static bool HasValue(object pTarget, PropertyRequiredRuleArgs pArgs)
        {
            object value = ExtendedReflectionFns.GetPropertyValue(pTarget, pArgs.RequiredPropertyInfo);

            if (value == null)
            {
                return(false);
            }
            if (value is string && ((string)value).Trim().Length == 0)
            {
                return(false);
            }
            if (value is BusinessBase && ((BusinessBase)value).IsNull)
            {
                return(false);
            }

            return(true);

            /*
             * if ( pArgs.MissingValue == null ) {
             * return true; // value is non-null and test value is null
             * } else {
             * return !pArgs.MissingValue.Equals(value);
             * }
             */
        }
示例#2
0
        public static RuleMethod CreateRuleMethod(Type pTargetType, string pPropertyName, object pMissingValue)
        {
            PropertyRequiredRuleArgs args =
                new PropertyRequiredRuleArgs(pTargetType, pPropertyName);
            RuleMethod rule = new RuleMethod(PropertyRequiredHandler, args);

            return(rule);
        }
示例#3
0
        private static bool PropertyRequiredHandler(object pTarget, RuleArgs pArgs)
        {
            PropertyRequiredRuleArgs args = (PropertyRequiredRuleArgs)pArgs;
            bool ok = HasValue(pTarget, args);

            if (ok)
            {
                return(true);
            }
            args.Description =
                string.Format(Properties.Resources.StringRequiredRule, args.DisplayPropertyName);
            return(false);
        }