Files
Toolkit2/Toolkit.Foundation/ValidationRule.cs
T
2024-07-23 18:20:58 +01:00

50 lines
1.0 KiB
C#

namespace Toolkit.Foundation;
public class ValidationRule
{
private readonly Func<bool>? syncValidation;
private readonly Func<Task<bool>>? asyncValidation;
public ValidationRule(Func<bool> validation,
string message)
{
syncValidation = validation;
Message = message;
}
public ValidationRule(Func<Task<bool>> validation,
string message)
{
asyncValidation = validation;
Message = message;
}
public ValidationRule(Func<bool> validation)
{
syncValidation = validation;
Message = "";
}
public ValidationRule(Func<Task<bool>> validation)
{
asyncValidation = validation;
Message = "";
}
public async Task<bool> Validate()
{
if (syncValidation is not null)
{
return syncValidation();
}
if (asyncValidation is not null)
{
return await asyncValidation();
}
return false;
}
public string Message { get; }
}