Отобразить все правила паролей пользовательские аннотации данных - PullRequest
0 голосов
/ 28 марта 2019

Здравствуйте. Я установил пользовательское правило пароля с помощью аннотации данных.Это работает, однако, было бы неплохо отобразить все сообщения об ошибках для пользователя, если требования пароля не выполнены.

Мой код следует за этим -

protected override ValidationResult IsValid(object value, ValidationContext validationContext)
    {
        string password = value.ToString();

        if (password.Length < 8)
        {
            return new ValidationResult("Password must contain at least 8 characters");
        }
        if (password.Count(c => char.IsLower(c)) == 0)
        {
            return new ValidationResult("Password must contain a lowercase character");
        }
        //other password rules removed for berevity
        else
        {
            return ValidationResult.Success;
        }
    }

Так как бы япоказать оба оператора if, если пароль не содержит строчных символов и содержит менее 8 символов, вместо того, чтобы просто возвращать первый оператор if?

1 Ответ

1 голос
/ 29 марта 2019

Вы можете сохранить все сообщения об ошибках в одну строку и вернуть ее после проверки всех правил.

protected override ValidationResult IsValid(object value, ValidationContext validationContext)
    {
        string password = value.ToString();
        var errorMessage = "";

        if (password.Length < 8)
        {
            errorMessage += "Password must contain at least 8 characters.";             
        }
        if (password.Count(c => char.IsLower(c)) == 0)
        {
            errorMessage += "Password must contain a lowercase character.";
        }
        //other rules
        if(String.IsNullOrEmpty(errorMessage))
        {
            return ValidationResult.Success;
        }
        else
        {
            return new ValidationResult(errorMessage);
        }
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...