andrebaltieri / Flunt

Validations and Notifications
https://github.com/andrebaltieri/flunt
MIT License
624 stars 162 forks source link

`Sugestão` Implementar comparações de string com char #107

Open OtavioVB opened 2 years ago

OtavioVB commented 2 years ago

Ao dar uma olhada no código de comparação de string's percebi que foi realizado comparações de uma lista de string's, com uma string utilizando o método contains. Veja a seguir o trecho do código:

public Contract Contains(IEnumerable<string> list, string val, StringComparison comparison, string key,
        string message = "{0} should contains the value {1}")
    {
        if (!list.Contains(val, comparison))
            AddNotification(key, string.Format(message, key, val));

        return this;
    }

No entanto, surgiu uma sugestão/dúvida, há algum método para comparar uma cadeia de caracteres com caracter? Provavelmente, seria de extrema utilidade para verificações de senhas, já que, normalmente, senhas mais fortes exigem pontuações, números, letras, entre outros, veja a seguir uma proposta de código:

public Contract HasChar(string text, char valComparison, StringComparison comparison, string key, string message = "{0} should contains the value {1}")
        {
            char[] chars = text.ToCharArray();

            var result = false;
            foreach (char charOfWord in text)
            {
                if (charOfWord == valComparison)
                {
                    result = true;
                }
            }

            if (result == false) AddNotification(key, string.Format(message, key, val));
        }
É claro que pode ser aprimorado o código, mas estou abrindo a issue como uma sugestão.