mirror of
https://github.com/nsnail/spectre.console.git
synced 2025-04-16 17:02:51 +08:00
26 lines
786 B
C#
26 lines
786 B
C#
namespace Spectre.Console.Tests.Data;
|
|
|
|
[AttributeUsage(AttributeTargets.Property, AllowMultiple = true)]
|
|
public sealed class PositiveNumberValidatorAttribute : ParameterValidationAttribute
|
|
{
|
|
public PositiveNumberValidatorAttribute(string errorMessage)
|
|
: base(errorMessage)
|
|
{
|
|
}
|
|
|
|
public override ValidationResult Validate(CommandParameterContext context)
|
|
{
|
|
if (context.Value is int integer)
|
|
{
|
|
if (integer > 0)
|
|
{
|
|
return ValidationResult.Success();
|
|
}
|
|
|
|
return ValidationResult.Error($"Number is not greater than 0 ({context.Parameter.PropertyName}).");
|
|
}
|
|
|
|
throw new InvalidOperationException($"Parameter is not a number ({context.Parameter.PropertyName}).");
|
|
}
|
|
}
|