Я хочу проверить как свои модели Dto, так и модели домена с помощью FluentValidation. Я уже определил класс Validator для проверки моего Dto, как показано ниже.
Однако, если я хочу добавить валидатор для моей модели домена, изменение одного из валидаторов не отразится на другом. Например, если я изменю правило длины пароля с 6 на 7, мне придется изменить его в обоих местах.
Есть ли способ потенциально унаследовать правила от модели предметной области или чего-то подобного, чтобы достичь согласованных правил в моделях Dto и Domain?
Dto:
public class NewUserDto
{
public string FirstName { get; set; }
public string LastName { get; set; }
public string Username { get; set; }
public string Email { get; set; }
public string Password { get; set; }
}
public class NewUserDtoValidator : AbstractValidator<NewUserDto>
{
public NewUserDtoValidator()
{
RuleFor(x => x.FirstName).Length(2, 50);
RuleFor(x => x.LastName).Length(2, 50);
RuleFor(x => x.Email).EmailAddress();
RuleFor(x => x.Username).Length(4, 25);
RuleFor(x => x.Password).MinimumLength(6);
}
}
Модель домена:
public class User
{
public uint Id { get; private set; }
public string Username { get; private set; }
public string FirstName { get; private set; }
public string LastName { get; private set; }
public string Email { get; private set; }
public DateTime RegistrationDate { get; private set; }
public string Hash { get; private set; }
public string Salt { get; private set; }
}
class BaseUserValidator: AbstractValidator<IUser> {}
- person Roman Koliada   schedule 06.02.2018