Когда пишешь валидатор не надо тебе каждый раз один и тот же экзепшн вызывать при каждом, мать его, действии
Создаешь класс валидатора для конкретной команды, например Create, затем наследуешься от AbstractValidator из FluentAssertation
типа
public class CreateCommandValidator : AbstractValidator<CreateCommand>
потом в конструкторе пишешь правила
public CreateCommandValidator()
{
RuleFor(cr => cr.FirstName)
.NotEmpty()
.WithMessage("Имя не должно быть пустым.")
.MaximumLength(150)
.WithMessage("Имя не должно превышать 150 символов.");
}
И так для каждой команды