public static ArgumentValidation <TArg?> IsNotNull <TArg>(this ArgumentValidation <TArg?> validation) where TArg : struct { if (validation == null) { throw new ArgumentNullException("validation"); } if (!validation.ArgumentValue.HasValue) { validation.SetException(new ArgumentNullException(validation.ParameterName)); } return(validation); }
/// <summary> /// Checks that the argument is its default value. /// </summary> /// <typeparam name="TArg">The type of the argument being validated.</typeparam> /// <param name="validation">The current argument that is being validated.</param> /// <returns>The current argument that is being validated.</returns> /// <exception cref="ArgumentException">Thrown if the argument is not its default value.</exception> public static ArgumentValidation <TArg> IsDefault <TArg>(this ArgumentValidation <TArg> validation) where TArg : struct { if (validation == null) { throw new ArgumentNullException("validation"); } if (!validation.ArgumentValue.Equals(default(TArg))) { validation.SetException(new ArgumentException( Format(Strings.Argument_NotEmptyValue, typeof(TArg).Name), validation.ParameterName)); } return(validation); }
public static ArgumentValidation <TArg?> IsNull <TArg>(this ArgumentValidation <TArg?> validation) where TArg : struct { if (validation == null) { throw new ArgumentNullException("validation"); } if (validation.ArgumentValue != null) { validation.SetException(new ArgumentException( Format(Strings.Argument_NotNullValue, typeof(TArg).Name), validation.ParameterName)); } return(validation); }
/// <summary> /// Checks that the string argument does not contain only white space. If the argument is <c>null</c>, this check is ignored. /// </summary> /// <param name="validation">The current argument that is being validated.</param> /// <returns>The current argument that is being validated.</returns> /// <exception cref="ArgumentException">Thrown if the string argument is empty or only white space.</exception> public static ArgumentValidation <string> IsNotWhiteSpace(this ArgumentValidation <string> validation) { if (validation == null) { throw new ArgumentNullException("validation"); } var argVal = validation.ArgumentValue; if (argVal != null) { if (argVal.IsWhiteSpace()) { validation.SetException(new ArgumentException(Format(Strings.Argument_WhiteSpaceString), validation.ParameterName)); } } return(validation); }
/// <summary> /// Checks that the string argument is not empty. If the argument is <c>null</c>, this check is ignored. /// </summary> /// <param name="validation">The current argument that is being validated.</param> /// <returns>The current argument that is being validated.</returns> /// <exception cref="ArgumentException">Thrown if the string argument is empty.</exception> public static ArgumentValidation <string> IsNotEmpty(this ArgumentValidation <string> validation) { if (validation == null) { throw new ArgumentNullException("validation"); } var argVal = validation.ArgumentValue; if (argVal != null) { if (argVal.Length == 0) { validation.SetException(new ArgumentException(Format(Strings.Argument_EmptyString), validation.ParameterName)); } } return(validation); }
/// <summary> /// Checks that the enumerable contains at least 1 element. If the argument is <c>null</c>, this check is ignored. /// </summary> /// <typeparam name="TArg">The type of the argument being validated. Must implement interface IEnumerable.</typeparam> /// <param name="validation">The current argument that is being validated.</param> /// <returns>The current argument that is being validated.</returns> /// <exception cref="ArgumentException">Thrown if the enumerable is empty.</exception> public static ArgumentValidation <TArg> IsNotEmpty <TArg>(this ArgumentValidation <TArg> validation) where TArg : class, IEnumerable { if (validation == null) { throw new ArgumentNullException("validation"); } var argVal = validation.ArgumentValue; if (argVal != null) { if (argVal.IsEnumEmpty()) { validation.SetException(new ArgumentException(Format( Strings.Argument_EmptyEnumerable, typeof(TArg).Name), validation.ParameterName)); } } return(validation); }
/// <summary> /// Checks that the provided condition evaluated to True. If not, an <see cref="ArgumentException"/> is thrown. If the argument is null, this check is ignored. /// </summary> /// <typeparam name="TArg">The type of the argument being validated.</typeparam> /// <param name="validation">The current argument that is being validated.</param> /// <param name="condition">An expression that must evaluate to true, or it will fail the validation.</param> /// <param name="message">An optional message to throw with the exception.</param> /// <returns>The current argument that is being validated.</returns> /// <exception cref="ArgumentNullException">Thrown if <paramref name="condition"/> is null.</exception> /// <exception cref="ArgumentException">Thrown if <paramref name="condition"/> evaluated to false.</exception> public static ArgumentValidation <TArg> That <TArg>( this ArgumentValidation <TArg> validation, Predicate <TArg> condition, string message) { if (validation == null) { throw new ArgumentNullException("validation"); } if (condition == null) { throw new ArgumentNullException("condition"); } var argVal = validation.ArgumentValue; if (argVal != null && !condition(argVal)) { validation.SetException(new ArgumentException(message)); } return(validation); }
public static ArgumentValidation <TArg> CanConvertTo <TArg, T>(this ArgumentValidation <TArg> validation, out T conversionResult) { if (validation == null) { throw new ArgumentNullException("validation"); } try { conversionResult = (T)Convert.ChangeType(validation.ArgumentValue, typeof(T), CultureInfo.CurrentCulture); } catch (InvalidCastException) { conversionResult = default(T); validation.SetException(new ArgumentException(Format(Strings.Argument_ConvertStringFail, typeof(TArg).Name, typeof(T).Name), validation.ParameterName)); } catch (FormatException) { conversionResult = default(T); validation.SetException(new ArgumentException(Format(Strings.Argument_ConvertStringFail, typeof(TArg).Name, typeof(T).Name), validation.ParameterName)); } return(validation); }
/// <summary> /// Begins a new Argument validation. /// </summary> /// <typeparam name="TArg">The type of the argument being validated.</typeparam> /// <param name="value">The value of the argument being validated.</param> /// <returns>A new <see cref="ArgumentValidation{TArg}"/> instance.</returns> public static ArgumentValidation <TArg> Argument <TArg>([ValidatedNotNull] TArg value) { return(ArgumentValidation <TArg> .Borrow(null, value)); }
/// <summary> /// Begins a new Argument validation. /// </summary> /// <typeparam name="TArg">The type of the argument being validated.</typeparam> /// <param name="value">The value of the argument being validated.</param> /// <param name="parameterName">The name of the parameter being validated. Optional.</param> /// <returns>A new <see cref="ArgumentValidation{TArg}"/> instance.</returns> public static ArgumentValidation <TArg> Argument <TArg>([ValidatedNotNull] TArg value, string parameterName) { return(ArgumentValidation <TArg> .Borrow(parameterName, value)); }
internal static void SetException <TArg>(this ArgumentValidation <TArg> validation, Exception ex) { validation.SetExceptionInternal(ex); }
/// <summary> /// Checks that the provided condition evaluated to True. If not, an <see cref="ArgumentOutOfRangeException"/> is thrown. If the argument is <c>null</c>, this check is ignored. /// </summary> /// <typeparam name="TArg">The type of the argument being validated.</typeparam> /// <param name="validation">The current argument that is being validated.</param> /// <param name="condition">An expression that must evaluate to true, or it will fail the validation.</param> /// <returns>The current argument that is being validated.</returns> /// <exception cref="ArgumentNullException">Thrown if <paramref name="condition"/> is null.</exception> /// <exception cref="ArgumentOutOfRangeException">Thrown if <paramref name="condition"/> evaluated to false.</exception> public static ArgumentValidation <TArg> IsInRange <TArg>( this ArgumentValidation <TArg> validation, Predicate <TArg> condition) { return(IsInRange(validation, condition, null)); }