Added Login validation

This commit is contained in:
TheXamlGuy
2024-06-16 19:19:12 +01:00
parent 8d574362a0
commit 8d76b712be
5 changed files with 92 additions and 40 deletions
+10 -21
View File
@@ -1,33 +1,22 @@
using System.Diagnostics.CodeAnalysis;
namespace Toolkit.Foundation;
namespace Toolkit.Foundation;
public class Validator
public class Validator(string propertyName,
ValidationRule[] rules)
{
private readonly ValidationRule[] rules = [];
private readonly ValidationRule[] rules = rules;
public Validator(string propertyName,
ValidationRule[] rules)
public string? PropertyName { get; } = propertyName;
public async Task<(bool isValid, string? message)> TryValidate()
{
PropertyName = propertyName;
this.rules = rules;
}
public string? PropertyName { get; }
public bool TryValidate([MaybeNull] out string message)
{
message = "";
foreach (ValidationRule rule in rules)
{
if (rule.Validation?.Invoke() == false)
if (!await rule.ValidateAsync())
{
message = rule.Message?.Invoke();
return false;
return (false, rule.Message);
}
}
return true;
return (true, null);
}
}