/// <summary> /// 全プロパティの最優先検証エラー取得 /// </summary> /// <param name="context"></param> /// <returns></returns> public static List <ValidationResult> GetAllFisrtValidationErrors(this ForValidation forValidation) { var firsts = ValidationConfig.FirstValidationAttributesProvider.Invoke(); var context = forValidation.Context; var ret = new List <ValidationResult>(); foreach (var prop in forValidation.GetTargetPropValues().Keys) { var value = forValidation.GetTargetPropValue(prop); var firstVAs = forValidation.GetValidationAttributes(prop).Where(va => firsts.Contains(va.GetType())); foreach (var va in firstVAs) { var ctx = new ValidationContext(context.ObjectInstance, context, context.Items); ctx.MemberName = prop; ret.AddErrors(ctx, va, value); } } return(ret); }
/// <summary> /// プロパティの検証エラー取得 /// </summary> /// <param name="forValidation"></param> /// <param name="propertyName"></param> /// <param name="displayName"></param> /// <returns></returns> public static List <ValidationResult> GetPropErrors(this ForValidation forValidation, string propertyName, string displayName) { var ret = new List <ValidationResult>(); var validations = forValidation.GetValidationAttributes(propertyName); if (validations.Count() == 0) { return(ret); } var context = forValidation.Context; var ctx = new ValidationContext(context.ObjectInstance, context, context.Items); ctx.MemberName = propertyName; if (!string.IsNullOrEmpty(displayName)) { ctx.DisplayName = displayName; } var value = forValidation.GetTargetPropValue(propertyName); // 最優先チェック var firsts = ValidationConfig.FirstValidationAttributesProvider.Invoke(); foreach (var attr in validations.Where(va => firsts.Contains(va.GetType()))) { ret.AddErrors(ctx, attr, value); } if (ret.Count() > 0) { return(ret); } // その他 foreach (var attr in validations.Where(va => !firsts.Contains(va.GetType()))) { ret.AddErrors(ctx, attr, value); } return(ret); }