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); * } */ }
public static RuleMethod CreateRuleMethod(Type pTargetType, string pPropertyName, object pMissingValue) { PropertyRequiredRuleArgs args = new PropertyRequiredRuleArgs(pTargetType, pPropertyName); RuleMethod rule = new RuleMethod(PropertyRequiredHandler, args); return(rule); }
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); }