// TODO: maybe add 'experimental' option to opt-in into experimental (still in development/unstable) check digit validators/countries (perhaps specific per country/algo.

        /// <summary>
        /// Enables national check digit validation for a subset of IBAN countries.
        /// </summary>
        /// <param name="builder">The builder instance.</param>
        /// <returns>The <see cref="IIbanNetOptionsBuilder"/> so that additional calls can be chained.</returns>
        public static IIbanNetOptionsBuilder ValidateNationalCheckDigits(this IIbanNetOptionsBuilder builder)
        {
            if (builder is null)
            {
                throw new ArgumentNullException(nameof(builder));
            }

            return(builder.WithRule(() => new HasValidNationalCheckDigitsRule()));
        }
Пример #2
0
        /// <summary>
        /// Registers a custom validation rule that is executed after built-in validation has passed.
        /// </summary>
        /// <typeparam name="T">The type of the validation rule.</typeparam>
        /// <param name="builder">The builder instance.</param>
        /// <returns>The <see cref="IIbanNetOptionsBuilder" /> so that additional calls can be chained.</returns>
        public static IIbanNetOptionsBuilder WithRule <T>(this IIbanNetOptionsBuilder builder)
            where T : class, IIbanValidationRule
        {
            if (builder is null)
            {
                throw new ArgumentNullException(nameof(builder));
            }

            return(builder.WithRule(typeof(T)));
        }