From 9daacad251655dab04b2b2fd5309c4f60aabe1af Mon Sep 17 00:00:00 2001 From: Tatsuro Shibamura Date: Sat, 12 Nov 2022 18:25:25 +0900 Subject: [PATCH] Fixed `ValidationResult` nullability (#240) --- Sharprompt/Drivers/DefaultConsoleDriver.cs | 4 ++-- Sharprompt/Fluent/InputOptionsExtensions.cs | 2 +- Sharprompt/Fluent/ListOptionsExtensions.cs | 2 +- .../Fluent/PasswordOptionsExtensions.cs | 2 +- Sharprompt/Forms/FormBase.cs | 2 +- Sharprompt/InputOptions.cs | 2 +- Sharprompt/Internal/PropertyMetadata.cs | 6 ++--- Sharprompt/Internal/ValidatorsExtensions.cs | 4 ++-- Sharprompt/ListOptions.cs | 2 +- Sharprompt/PasswordOptions.cs | 2 +- Sharprompt/Prompt.Basic.cs | 6 ++--- Sharprompt/Validators.cs | 22 +++++++++---------- 12 files changed, 28 insertions(+), 28 deletions(-) diff --git a/Sharprompt/Drivers/DefaultConsoleDriver.cs b/Sharprompt/Drivers/DefaultConsoleDriver.cs index a43bd99..7337a30 100644 --- a/Sharprompt/Drivers/DefaultConsoleDriver.cs +++ b/Sharprompt/Drivers/DefaultConsoleDriver.cs @@ -78,7 +78,7 @@ public ConsoleKeyInfo ReadKey() if (keyInfo.Key == ConsoleKey.C && keyInfo.Modifiers == ConsoleModifiers.Control) { - CancellationCallback?.Invoke(); + CancellationCallback.Invoke(); } return keyInfo; @@ -114,7 +114,7 @@ public bool CursorVisible public int WindowHeight => Console.WindowHeight; - public Action CancellationCallback { get; set; } = null!; + public Action CancellationCallback { get; set; } = () => { }; #endregion } diff --git a/Sharprompt/Fluent/InputOptionsExtensions.cs b/Sharprompt/Fluent/InputOptionsExtensions.cs index 6f3a265..1598c06 100644 --- a/Sharprompt/Fluent/InputOptionsExtensions.cs +++ b/Sharprompt/Fluent/InputOptionsExtensions.cs @@ -26,7 +26,7 @@ public static InputOptions WithDefaultValue(this InputOptions options, return options; } - public static InputOptions AddValidators(this InputOptions options, params Func[] validators) + public static InputOptions AddValidators(this InputOptions options, params Func[] validators) { foreach (var validator in validators) { diff --git a/Sharprompt/Fluent/ListOptionsExtensions.cs b/Sharprompt/Fluent/ListOptionsExtensions.cs index 9bc1c77..2ea54b1 100644 --- a/Sharprompt/Fluent/ListOptionsExtensions.cs +++ b/Sharprompt/Fluent/ListOptionsExtensions.cs @@ -34,7 +34,7 @@ public static ListOptions WithMaximum(this ListOptions options, int max return options; } - public static ListOptions AddValidators(this ListOptions options, params Func[] validators) where T : notnull + public static ListOptions AddValidators(this ListOptions options, params Func[] validators) where T : notnull { foreach (var validator in validators) { diff --git a/Sharprompt/Fluent/PasswordOptionsExtensions.cs b/Sharprompt/Fluent/PasswordOptionsExtensions.cs index 59d5060..f3f6d9f 100644 --- a/Sharprompt/Fluent/PasswordOptionsExtensions.cs +++ b/Sharprompt/Fluent/PasswordOptionsExtensions.cs @@ -26,7 +26,7 @@ public static PasswordOptions WithPasswordChar(this PasswordOptions options, str return options; } - public static PasswordOptions AddValidators(this PasswordOptions options, params Func[] validators) + public static PasswordOptions AddValidators(this PasswordOptions options, params Func[] validators) { foreach (var validator in validators) { diff --git a/Sharprompt/Forms/FormBase.cs b/Sharprompt/Forms/FormBase.cs index bf9ad0b..dd09643 100644 --- a/Sharprompt/Forms/FormBase.cs +++ b/Sharprompt/Forms/FormBase.cs @@ -57,7 +57,7 @@ public T Start() protected void SetError(ValidationResult validationResult) => SetError(validationResult.ErrorMessage!); - protected bool TryValidate([NotNullWhen(true)] object? input, IList> validators) + protected bool TryValidate([NotNullWhen(true)] object? input, IList> validators) { var result = validators.Select(x => x(input)) .FirstOrDefault(x => x != ValidationResult.Success); diff --git a/Sharprompt/InputOptions.cs b/Sharprompt/InputOptions.cs index 168de5d..0c45379 100644 --- a/Sharprompt/InputOptions.cs +++ b/Sharprompt/InputOptions.cs @@ -12,7 +12,7 @@ public class InputOptions public object? DefaultValue { get; set; } - public IList> Validators { get; } = new List>(); + public IList> Validators { get; } = new List>(); internal void EnsureOptions() { diff --git a/Sharprompt/Internal/PropertyMetadata.cs b/Sharprompt/Internal/PropertyMetadata.cs index 5c0ab57..9424d90 100644 --- a/Sharprompt/Internal/PropertyMetadata.cs +++ b/Sharprompt/Internal/PropertyMetadata.cs @@ -46,7 +46,7 @@ public PropertyMetadata(object model, PropertyInfo propertyInfo) public string? Placeholder { get; set; } public int? Order { get; } public object? DefaultValue { get; } - public IReadOnlyList> Validators { get; } + public IReadOnlyList> Validators { get; } public IItemsProvider ItemsProvider { get; set; } public bool BindIgnore { get; set; } @@ -89,7 +89,7 @@ public ValidationAttributeAdapter(ValidationAttribute validationAttribute) private readonly ValidationAttribute _validationAttribute; - public Func GetValidator(string propertyName, object model) + public Func GetValidator(string propertyName, object model) { var validationContext = new ValidationContext(model) { @@ -97,7 +97,7 @@ public ValidationAttributeAdapter(ValidationAttribute validationAttribute) MemberName = propertyName }; - return input => _validationAttribute.GetValidationResult(input, validationContext)!; + return input => _validationAttribute.GetValidationResult(input, validationContext); } } } diff --git a/Sharprompt/Internal/ValidatorsExtensions.cs b/Sharprompt/Internal/ValidatorsExtensions.cs index edfabf7..776e123 100644 --- a/Sharprompt/Internal/ValidatorsExtensions.cs +++ b/Sharprompt/Internal/ValidatorsExtensions.cs @@ -7,9 +7,9 @@ namespace Sharprompt.Internal; internal static class ValidatorsExtensions { - public static void Merge(this IList> source, IEnumerable>? validators) + public static void Merge(this IList> source, IEnumerable>? validators) { - foreach (var validator in validators ?? Enumerable.Empty>()) + foreach (var validator in validators ?? Enumerable.Empty>()) { source.Add(validator); } diff --git a/Sharprompt/ListOptions.cs b/Sharprompt/ListOptions.cs index bc22cd1..bed2229 100644 --- a/Sharprompt/ListOptions.cs +++ b/Sharprompt/ListOptions.cs @@ -17,7 +17,7 @@ public class ListOptions where T : notnull public int Maximum { get; set; } = int.MaxValue; - public IList> Validators { get; } = new List>(); + public IList> Validators { get; } = new List>(); internal void EnsureOptions() { diff --git a/Sharprompt/PasswordOptions.cs b/Sharprompt/PasswordOptions.cs index 1bbf686..8f643e3 100644 --- a/Sharprompt/PasswordOptions.cs +++ b/Sharprompt/PasswordOptions.cs @@ -12,7 +12,7 @@ public class PasswordOptions public string PasswordChar { get; set; } = "*"; - public IList> Validators { get; } = new List>(); + public IList> Validators { get; } = new List>(); internal void EnsureOptions() { diff --git a/Sharprompt/Prompt.Basic.cs b/Sharprompt/Prompt.Basic.cs index 9b63274..1a67b18 100644 --- a/Sharprompt/Prompt.Basic.cs +++ b/Sharprompt/Prompt.Basic.cs @@ -25,7 +25,7 @@ public static T Input(Action> configure) return Input(options); } - public static T Input(string message, object? defaultValue = default, string? placeholder = default, IList>? validators = default) + public static T Input(string message, object? defaultValue = default, string? placeholder = default, IList>? validators = default) { return Input(options => { @@ -53,7 +53,7 @@ public static string Password(Action configure) return Password(options); } - public static string Password(string message, string passwordChar = "*", string? placeholder = default, IList>? validators = default) + public static string Password(string message, string passwordChar = "*", string? placeholder = default, IList>? validators = default) { return Password(options => { @@ -186,7 +186,7 @@ public static IEnumerable List(Action> configure) where T : return List(options); } - public static IEnumerable List(string message, int minimum = 1, int maximum = int.MaxValue, IList>? validators = default) where T : notnull + public static IEnumerable List(string message, int minimum = 1, int maximum = int.MaxValue, IList>? validators = default) where T : notnull { return List(options => { diff --git a/Sharprompt/Validators.cs b/Sharprompt/Validators.cs index 9b24804..e61c976 100644 --- a/Sharprompt/Validators.cs +++ b/Sharprompt/Validators.cs @@ -8,7 +8,7 @@ namespace Sharprompt; public static class Validators { - public static Func Required(string? errorMessage = default) + public static Func Required(string? errorMessage = default) { return input => { @@ -22,58 +22,58 @@ public static class Validators return new ValidationResult(errorMessage ?? Resource.Validation_Required); } - return ValidationResult.Success!; + return ValidationResult.Success; }; } - public static Func MinLength(int length, string? errorMessage = default) + public static Func MinLength(int length, string? errorMessage = default) { return input => { if (input is not string strValue) { - return ValidationResult.Success!; + return ValidationResult.Success; } if (strValue.Length >= length) { - return ValidationResult.Success!; + return ValidationResult.Success; } return new ValidationResult(errorMessage ?? Resource.Validation_MinLength); }; } - public static Func MaxLength(int length, string? errorMessage = default) + public static Func MaxLength(int length, string? errorMessage = default) { return input => { if (input is not string strValue) { - return ValidationResult.Success!; + return ValidationResult.Success; } if (strValue.Length <= length) { - return ValidationResult.Success!; + return ValidationResult.Success; } return new ValidationResult(errorMessage ?? Resource.Validation_MaxLength); }; } - public static Func RegularExpression(string pattern, string? errorMessage = default) + public static Func RegularExpression(string pattern, string? errorMessage = default) { return input => { if (input is not string strValue) { - return ValidationResult.Success!; + return ValidationResult.Success; } if (Regex.IsMatch(strValue, pattern)) { - return ValidationResult.Success!; + return ValidationResult.Success; } return new ValidationResult(errorMessage ?? Resource.Validation_RegularExpression);