public override ValidationResult Validate(ICommandParameterInfo info, object value) { if (!(value is string project)) { return(ValidationResult.Error($"Package must be a string ({info?.PropertyName}).")); } if (!project.EndsWith(".csproj")) { return(ValidationResult.Error($"Provided project is not a csproj file ({info?.PropertyName}).")); } return(ValidationResult.Success()); }
public override ValidationResult Validate(ICommandParameterInfo info, object value) { if (value is int integer) { if (integer > 0) { return(ValidationResult.Success()); } return(ValidationResult.Error($"Number is not greater than 0 ({info?.PropertyName}).")); } throw new InvalidOperationException($"Parameter is not a number ({info?.PropertyName})."); }
/// <summary> /// Validates the parameter value. /// </summary> /// <param name="info">The parameter info.</param> /// <param name="value">The parameter value.</param> /// <returns>The validation result.</returns> public abstract ValidationResult Validate(ICommandParameterInfo info, object?value);
/// <summary> /// Initializes a new instance of the <see cref="CommandParameterContext"/> class. /// </summary> /// <param name="parameter">The parameter.</param> /// <param name="resolver">The type resolver.</param> /// <param name="value">The parameter value.</param> public CommandParameterContext(ICommandParameterInfo parameter, ITypeResolver resolver, object?value) { Parameter = parameter ?? throw new ArgumentNullException(nameof(parameter)); Resolver = resolver ?? throw new ArgumentNullException(nameof(resolver)); Value = value; }