protected TBuilder MatchesInstanceRuleCore(Func <TProperty, T, bool> isValidFunction, Func <TProperty, T, string> errorMessageAccessor)
        {
            var _errorMessageAccessor = DXValidationAttribute.ErrorMessageAccessor(errorMessageAccessor);

            return(AddAttribute(new CustomInstanceValidationAttribute(typeof(TProperty), (value, instance) => isValidFunction((TProperty)value, (T)instance), _errorMessageAccessor)));
        }
        protected TBuilder MatchesRuleCore(Func <TProperty, bool> isValidFunction, Func <TProperty, string> errorMessageAccessor)
        {
            var _errorMessageAccessor = DXValidationAttribute.ErrorMessageAccessor(errorMessageAccessor);

            return(AddAttribute(new CustomValidationAttribute(typeof(TProperty), x => isValidFunction((TProperty)x), _errorMessageAccessor)));
        }
        protected TBuilder MinLengthCore(int minLength, Func <TProperty, string> errorMessageAccessor)
        {
            var _errorMessageAccessor = DXValidationAttribute.ErrorMessageAccessor(errorMessageAccessor);

            return(AddOrReplaceAttribute(new DXMinLengthAttribute(minLength, _errorMessageAccessor)));
        }
        protected TBuilder MatchesRegularExpressionCore(string pattern, Func <TProperty, string> errorMessageAccessor)
        {
            var _errorMessageAccessor = DXValidationAttribute.ErrorMessageAccessor(errorMessageAccessor);

            return(AddOrReplaceAttribute(new RegularExpressionAttribute(pattern, _errorMessageAccessor)));
        }
 public static PropertyMetadataBuilder <T, TProperty?> InRange <T, TProperty>(this PropertyMetadataBuilder <T, TProperty?> builder, TProperty?minimum, TProperty?maximum, Func <TProperty, string> errorMessageAccessor) where TProperty : struct, IComparable
 {
     return(builder.AddOrReplaceAttribute(new RangeAttribute(minimum, maximum, DXValidationAttribute.ErrorMessageAccessor(errorMessageAccessor))));
 }