public static IValidationOptions GetVerifiedValidationOptions(IValidationOptions options) { if (options == null) { throw new ArgumentNullException(nameof(options)); } if (options.CollectionForceKey == null) { throw new InvalidOperationException($"Null {nameof(IExecutionOptions.CollectionForceKey)}"); } if (options.RequiredError == null) { throw new InvalidOperationException($"Null {nameof(IExecutionOptions.RequiredError)}"); } if (options.MaxDepth < 0) { throw new InvalidOperationException($"{nameof(IExecutionOptions.MaxDepth)} cannot be negative"); } return(new ValidationOptions { TranslationName = options.TranslationName, NullRootStrategy = options.NullRootStrategy, ValidationStrategy = options.ValidationStrategy, CollectionForceKey = options.CollectionForceKey, MaxDepth = options.MaxDepth, RequiredError = options.RequiredError, DefaultError = options.DefaultError }); }
public static IValidationOptions UnwrapValidationOptions(IValidationOptions wrapped, Action <ValidationOptions> processUnwrapped) { var unwrapped = (ValidationOptions)wrapped; processUnwrapped(unwrapped); return(unwrapped); }
/// <summary> /// Sets the key (a member name) for the collection's members errors if validating using /// <see cref="ValidationStrategy.Force" /> strategy. /// </summary> /// <param name="options"></param> /// <param name="collectionForceKey"> /// Key (a member name) for the collection's members errors if validating using /// <see cref="ValidationStrategy.Force" /> strategy. /// </param> /// <exception cref="ArgumentNullException">Thrown if <paramref name="collectionForceKey" /> is null.</exception> public static IValidationOptions SetCollectionForceKey(this IValidationOptions options, string collectionForceKey) { if (collectionForceKey == null) { throw new ArgumentNullException(nameof(collectionForceKey)); } return(OptionsUnwrapper.UnwrapValidationOptions(options, validationOptions => { validationOptions.CollectionForceKey = collectionForceKey; })); }
/// <summary> /// Sets the maximum allowed level of depth within the validated model. The default value is 10. /// </summary> /// <param name="options"></param> /// <param name="maxDepth">Max depth.</param> /// <exception cref="ArgumentOutOfRangeException">Thrown when <paramref name="maxDepth" /> is less than zero.</exception> public static IValidationOptions SetMaxDepth(this IValidationOptions options, int maxDepth) { if (maxDepth < 0) { throw new ArgumentOutOfRangeException(nameof(maxDepth), maxDepth, $"{nameof(maxDepth)} cannot be less than 0"); } return(OptionsUnwrapper.UnwrapValidationOptions(options, validationOptions => { validationOptions.MaxDepth = maxDepth; })); }
/// <summary> /// Sets the default error added to the member if it's invalid but no error message is assigned. /// </summary> /// <param name="options"></param> /// <param name="errorMessage">Error message</param> /// <exception cref="ArgumentNullException">Thrown if <see cref="errorMessage" /> is null.</exception> public static IValidationOptions SetDefaultError(this IValidationOptions options, string errorMessage) { var requiredError = new Error(errorMessage); return(OptionsUnwrapper.UnwrapValidationOptions(options, validationOptions => { validationOptions.DefaultError = requiredError; })); }
/// <summary> /// Sets the default strategy of the validation process. /// </summary> /// <param name="options"></param> /// <param name="validationStrategy">Strategy of the validation process.</param> public static IValidationOptions SetValidationStrategy(this IValidationOptions options, ValidationStrategy validationStrategy) { return(OptionsUnwrapper.UnwrapValidationOptions(options, validationOptions => { validationOptions.ValidationStrategy = validationStrategy; })); }
/// <summary> /// Disables the default translation. <see cref="ITranslationProxy.DefaultTranslator" /> in the /// <see cref="IValidationResult{T}" /> will be using original phrases. /// </summary> /// <param name="options"></param> public static IValidationOptions SetTranslationDisabled(this IValidationOptions options) { return(OptionsUnwrapper.UnwrapValidationOptions(options, validationOptions => { validationOptions.TranslationName = null; })); }
/// <summary> /// Default translation name. Used to create <see cref="ITranslationProxy.DefaultTranslator" /> in the /// <see cref="IValidationResult{T}" />. /// </summary> /// <param name="options"></param> /// <param name="translationName">Translation name.</param> public static IValidationOptions SetTranslationName(this IValidationOptions options, string translationName) { return(OptionsUnwrapper.UnwrapValidationOptions(options, validationOptions => { validationOptions.TranslationName = translationName; })); }
/// <summary> /// Sets the behavior for the null reference passed to be validated. /// </summary> /// <param name="options"></param> /// <param name="nullRootStrategy">Behavior for the null reference passed to be validated.</param> public static IValidationOptions SetNullRootStrategy(this IValidationOptions options, NullRootStrategy nullRootStrategy) { return(OptionsUnwrapper.UnwrapValidationOptions(options, validationOptions => { validationOptions.NullRootStrategy = nullRootStrategy; })); }