25 lines
667 B
C#
25 lines
667 B
C#
using System.Text.RegularExpressions;
|
|
using FluentValidation;
|
|
using FluentValidation.Results;
|
|
using ValueOf;
|
|
|
|
namespace Customers.Api.Domain.Common;
|
|
|
|
public class FullName : ValueOf<string, FullName>
|
|
{
|
|
private static readonly Regex FullNameRegex =
|
|
new("^[a-z ,.'-]+$", RegexOptions.Compiled | RegexOptions.IgnoreCase);
|
|
|
|
protected override void Validate()
|
|
{
|
|
if (!FullNameRegex.IsMatch(Value))
|
|
{
|
|
var message = $"{Value} is not a valid full name";
|
|
throw new ValidationException(message, new []
|
|
{
|
|
new ValidationFailure(nameof(FullName), message)
|
|
});
|
|
}
|
|
}
|
|
}
|