CheckAsync(object argument, CommandContext context, IServiceProvider provider) { var value = (argument as string)?.Length ?? Convert.ToDouble(argument); var success = IsMinimumInclusive && !IsMaximumInclusive ? Minimum <= value && value < Maximum : !IsMinimumInclusive && IsMaximumInclusive ? Minimum < value && value <= Maximum : IsMinimumInclusive && IsMaximumInclusive ? Minimum <= value && value <= Maximum : Minimum < value && value < Maximum; var result = success ? CheckResult.Successful : CheckResult.Unsuccessful( $"The provided argument was outside of the range: {(IsMinimumInclusive ? '[' : '(')}{Minimum}, {Maximum}{(IsMaximumInclusive ? ']' : ')')}."); #if NETCOREAPP return(result); #else return(Task.FromResult(result)); #endif }
/// <inheritdoc /> public override ValueTask <CheckResult> CheckAsync(object argument, CommandContext context) => (argument as string).IndexOf(Value, StringComparison) != -1 ? CheckResult.Successful : CheckResult.Unsuccessful( $"The provided argument must contain the {(StringComparison.IsCaseSensitive() ? "case-sensitive" : "case-insensitive")} value: {Value}.");
/// <inheritdoc /> public override ValueTask <CheckResult> CheckAsync(object argument, CommandContext context) => Regex.IsMatch(argument as string) ? CheckResult.Successful : CheckResult.Unsuccessful($"The provided argument must match the regex pattern: {Regex}.");