NikFaraday
@NikFaraday
Student full-stack Developer

Как правильно настроить валидацию модели Fluent Validator API?

Здравствуйте!

У меня есть модель изменения данных, которая состоит из свойств: Email, Password и Phone. Мне нужно, что бы Phone валидировался только тогда, когда Email и Password пустые. Вот код валидатора:

public RequestCodeValidator()
        {
            RuleFor(x => x.Id);
            RuleFor(x => x.Phone)
                .NotEmpty()
                .NotNull()
                .When(model => string.IsNullOrEmpty(model.Email) && string.IsNullOrEmpty(model.Password))
                .Must(phone => long.TryParse(phone, out long numberPhone) &&
                    phone.TrimStart('0').Length == 9 || phone.Length == 12);
            RuleFor(x => x.Email)
                .NotEmpty()
                .NotNull()
                .EmailAddress()
                .MaximumLength(255)
                .When(model => string.IsNullOrEmpty(model.Email) && string.IsNullOrEmpty(model.Password));
            RuleFor(x => x.Password)
                .NotEmpty()
                .NotNull()
                .Length(4, 31)
                .When(model => string.IsNullOrEmpty(model.Email) && string.IsNullOrEmpty(model.Password));
            RuleFor(x => x.Code);
        }


При валидации телефона, я думал, что .Must не будет срабатывать, когда я меняю, допустим, пароль, но он срабатывает и выкидывает мне ошибку. Как это можно решить?
  • Вопрос задан
  • 37 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы