public ChoRecordConfiguration(Type recordType = null) { ErrorMode = ChoErrorMode.ThrowAndStop; AutoDiscoverColumns = true; ThrowAndStopOnMissingField = true; ObjectValidationMode = ChoObjectValidationMode.MemberLevel; }
public ChoContractResolverJsonConverter(ChoFileRecordFieldConfiguration fc, CultureInfo culture, Type objType, ChoObjectValidationMode validationMode, MemberInfo mi) { _fc = fc; _culture = culture; _objType = objType; _validationMode = validationMode; _mi = mi; }
protected virtual void Init(Type recordType) { ChoRecordObjectAttribute recObjAttr = ChoType.GetAttribute <ChoRecordObjectAttribute>(recordType); if (recObjAttr != null) { ErrorMode = recObjAttr.ErrorMode; IgnoreFieldValueMode = recObjAttr.IgnoreFieldValueMode; ThrowAndStopOnMissingField = recObjAttr.ThrowAndStopOnMissingField; ObjectValidationMode = recObjAttr.ObjectValidationMode; } }
public override bool TryValidate(object target, ICollection <ValidationResult> validationResults) { ChoObjectValidationMode prevObjValidationMode = Configuration.ObjectValidationMode; if (Configuration.ObjectValidationMode == ChoObjectValidationMode.Off) { Configuration.ObjectValidationMode = ChoObjectValidationMode.ObjectLevel; } try { T rec = default(T); while ((rec = Read()) != null) { } return(IsValid); } finally { Configuration.ObjectValidationMode = prevObjValidationMode; } }
public static object ChangeType <T>(object value, Type conversionType) where T : Attribute { if (value == null) { return(ChoActivator.CreateInstanceAndInit(conversionType)); } if (conversionType.IsAssignableFrom(value.GetType())) { return(value); } object dest = null; if (value is IConvertible) { dest = Convert.ChangeType(value, conversionType); } else { dest = ChoActivator.CreateInstanceAndInit(conversionType); value.CloneTo <T>(dest); } if (dest != null && !dest.GetType().IsSimple()) { ChoObjectValidationMode m = GetValidationMode(value); if (m == ChoObjectValidationMode.MemberLevel) { ChoValidator.Validate(dest); } else if (m == ChoObjectValidationMode.ObjectLevel) { ChoValidator.Validate(dest); } } return(dest); }
public static void DoMemberLevelValidation(this object rec, string fn, ChoRecordFieldConfiguration fieldConfig, ChoObjectValidationMode vm, object fieldValue) { if ((vm & ChoObjectValidationMode.MemberLevel) == ChoObjectValidationMode.MemberLevel) { if (fieldConfig.Validators.IsNullOrEmpty()) { ChoValidator.ValidateFor(fieldValue, fn, fieldConfig.Validators); } } }
public static void DoMemberLevelValidation(this object rec, string fn, ChoRecordFieldConfiguration fieldConfig, ChoObjectValidationMode vm) { if (!((vm & ChoObjectValidationMode.MemberLevel) == ChoObjectValidationMode.MemberLevel)) { return; } if (rec is IDictionary <string, object> ) { ((IDictionary <string, object>)rec).DoMemberLevelValidation(fn, fieldConfig, vm); } else { if (fieldConfig.PI != null) { if (fieldConfig.Validators.IsNullOrEmpty()) { ChoValidator.ValidateFor(rec, fieldConfig.PI); } else { ChoValidator.ValidateFor(ChoType.GetPropertyValue(rec, fieldConfig.PI), fn, fieldConfig.Validators); } } } }
public static void DoMemberLevelValidation(this IDictionary <string, object> dict, string fn, ChoRecordFieldConfiguration fieldConfig, ChoObjectValidationMode vm) { if (!fieldConfig.Validators.IsNullOrEmpty() && (vm & ChoObjectValidationMode.MemberLevel) == ChoObjectValidationMode.MemberLevel) { ChoValidator.ValidateFor(dict[fn], fn, fieldConfig.Validators); } }
public static void DoMemberLevelValidation(this object rec, string fn, ChoRecordFieldConfiguration fieldConfig, ChoObjectValidationMode vm, object fieldValue) { if ((vm & ChoObjectValidationMode.MemberLevel) == ChoObjectValidationMode.MemberLevel) { if (fieldConfig.Validators.IsNullOrEmpty()) { if (!(rec is ExpandoObject)) { ChoValidator.ValidateFor(fieldValue, fn, ChoTypeDescriptor.GetPropetyAttributes <ValidationAttribute>(ChoTypeDescriptor.GetProperty <ValidationAttribute>(rec.GetType(), fn)).ToArray()); } } else { ChoValidator.ValidateFor(fieldValue, fn, fieldConfig.Validators); } } }
public static void DoMemberLevelValidation(this object rec, string fn, ChoRecordFieldConfiguration fieldConfig, ChoObjectValidationMode vm) { if (rec is ExpandoObject) { ((IDictionary <string, object>)rec).DoMemberLevelValidation(fn, fieldConfig, vm); } else { if ((vm & ChoObjectValidationMode.MemberLevel) == ChoObjectValidationMode.MemberLevel) { if (fieldConfig.Validators.IsNullOrEmpty()) { ChoValidator.ValidateFor(rec, fn); } else { ChoValidator.ValidateFor(ChoType.GetMemberValue(rec, fn), fn, fieldConfig.Validators); } } } }
public ChoObjectAttribute() { ObjectValidationMode = ChoObjectValidationMode.MemberLevel; }
public ChoObjectAttribute() { ObjectValidationMode = ChoObjectValidationMode.Off; }
public static void DoMemberLevelValidation(this object rec, string fn, ChoRecordFieldConfiguration fieldConfig, ChoObjectValidationMode vm) { if (!((vm & ChoObjectValidationMode.MemberLevel) == ChoObjectValidationMode.MemberLevel)) { return; } if (rec is IDictionary <string, object> ) { ((IDictionary <string, object>)rec).DoMemberLevelValidation(fn, fieldConfig, vm); } else { if (fieldConfig.Validator == null) { if (fieldConfig.PD == null) { fieldConfig.PD = fieldConfig.PropertyDescriptor; } if (fieldConfig.PD != null) { if (fieldConfig.Validators.IsNullOrEmpty()) { ChoValidator.ValidateFor(rec, fieldConfig.PD); } else { ChoValidator.ValidateFor(fieldConfig.PD.GetValue(rec), fn, fieldConfig.Validators); } } } else { if (!fieldConfig.Validator(fieldConfig.PD.GetValue(rec))) { throw new ValidationException("Failed to validate '{0}' member. {1}".FormatString(fn, Environment.NewLine)); } } } }
public static void DoMemberLevelValidation(this IDictionary <string, object> dict, string fn, ChoRecordFieldConfiguration fieldConfig, ChoObjectValidationMode vm) { if (!fieldConfig.Validators.IsNullOrEmpty() && (vm & ChoObjectValidationMode.MemberLevel) == ChoObjectValidationMode.MemberLevel) { if (fieldConfig.Validator == null) { ChoValidator.ValidateFor(dict[fn], fn, fieldConfig.Validators); } else { if (!fieldConfig.Validator(dict[fn])) { throw new ValidationException("Failed to validate '{0}' member. {1}".FormatString(fn, Environment.NewLine)); } } } }