Files
mixtape/zero/Validation/ValidatorExtensions.cs
T

48 lines
1.3 KiB
C#
Raw Normal View History

2022-12-07 14:05:11 +01:00
using FluentValidation;
2023-10-13 13:43:40 +02:00
using zero.Validation.Validators;
2022-12-07 14:05:11 +01:00
namespace zero.Validation;
public static partial class ValidatorExtensions
2022-12-07 14:05:11 +01:00
{
/// <summary>
/// Validate a color input as HEX (#aabbccdd or #aabbcc or #abc)
/// </summary>
public static IRuleBuilderOptions<T, string> Hex<T>(this IRuleBuilder<T, string> ruleBuilder)
{
2023-10-13 13:43:40 +02:00
return ruleBuilder.SetValidator(new HexValidator<T>());
2022-12-07 14:05:11 +01:00
}
/// <summary>
/// Validate an email
/// </summary>
public static IRuleBuilderOptions<T, string> Url<T>(this IRuleBuilder<T, string> ruleBuilder)
{
2023-10-13 13:43:40 +02:00
return ruleBuilder.SetValidator(new UrlValidator<T>());
2022-12-07 14:05:11 +01:00
}
/// <summary>
/// Validate an email
/// </summary>
public static IRuleBuilderOptions<T, string> Email<T>(this IRuleBuilder<T, string> ruleBuilder)
{
2023-10-13 13:43:40 +02:00
return ruleBuilder.SetValidator(new EmailValidator<T>());
2022-12-07 14:05:11 +01:00
}
/// <summary>
/// Validate one or multiple emails
/// </summary>
public static IRuleBuilderOptions<T, string> Emails<T>(this IRuleBuilder<T, string> ruleBuilder)
{
2023-10-13 13:43:40 +02:00
return ruleBuilder.SetValidator(new EmailsValidator<T>());
2022-12-07 14:05:11 +01:00
}
/// <summary>
/// Validates a culture identifier
/// </summary>
public static IRuleBuilderOptions<T, string> Culture<T>(this IRuleBuilder<T, string> ruleBuilder)
{
2023-10-13 13:43:40 +02:00
return ruleBuilder.SetValidator(new CultureValidator<T>());
2022-12-07 14:05:11 +01:00
}
}