Задать вопрос
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 не будет срабатывать, когда я меняю, допустим, пароль, но он срабатывает и выкидывает мне ошибку. Как это можно решить?
  • Вопрос задан
  • 57 просмотров
Подписаться 1 Средний Комментировать
Помогут разобраться в теме Все курсы
  • Учебный центр IBS
    SDP-030_PRG Продвинутая разработка в Microsoft .NET
    1 неделя
    Далее
  • Ulearn.me
    Проектирование на языке C#
    1 неделя
    Далее
  • Ulearn.me
    Основы программирования на примере C#. Часть 2
    1 неделя
    Далее
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы