/// <summary>
            /// Esse método limpa todas os caracteres da string não pertencente ao enum informado no segundo parâmetro.
            /// </summary>
            /// <param name="localDaManchaCinzenta">O local da limpeza, ou seja, a string a ser limpa.</param>
            /// <param name="naoLimpar">Caracteres que não devem ser removidos da string.</param>
            /// <returns>Retorna uma string com todos os caracteres removidos, exceto os tipos informados no segundo parâmentro com o enum.</returns>
            public string Limpeza(string localDaManchaCinzenta, EnumNaoLimpar naoLimpar)
            {
                switch (naoLimpar)
                {
                case EnumNaoLimpar.Nulo:
                    return(EliminaManchasCinzentas(localDaManchaCinzenta));

                default:
                    return(EliminaManchasCinzentas(localDaManchaCinzenta, naoLimpar));
                }
            }
示例#2
0
 /// <summary>
 /// Esse método limpa todas os caracteres da string não pertencente ao enum informado no segundo parâmetro.
 /// </summary>
 /// <param name="localDaManchaCinzenta">O local da limpeza, ou seja, a string a ser limpa.</param>
 /// <param name="naoLimpar">Caracteres que não devem ser removidos da string.</param>
 /// <returns>Retorna uma string com todos os caracteres removidos, exceto os tipos informados no segundo parâmentro com o enum.</returns>
 protected abstract string EliminaManchasCinzentas(string localDaManchaCinzenta, EnumNaoLimpar naoLimpar);
 public string Lavar(string roupa, EnumNaoLimpar naoLimpar)
 {
     return(oBranco.Limpeza(roupa, naoLimpar));
 }
            /// <summary>
            /// Esse método limpa todas os caracteres da string não pertencente ao enum informado no segundo parâmetro.
            /// </summary>
            /// <param name="localDaManchaCinzenta">O local da limpeza, ou seja, a string a ser limpa.</param>
            /// <param name="naoLimpar">Caracteres que não devem ser removidos da string.</param>
            /// <returns>Retorna uma string com todos os caracteres removidos, exceto os tipos informados no segundo parâmentro com o enum.</returns>
            protected override string EliminaManchasCinzentas(string localDaManchaCinzenta, EnumNaoLimpar naoLimpar)
            {
                string stringLimpa = "";

                foreach (char digito in (naoLimpar == EnumNaoLimpar.Login) ? System.Text.Encoding.ASCII.GetString(System.Text.Encoding.GetEncoding("ISO-8859-8").GetBytes(localDaManchaCinzenta)) : localDaManchaCinzenta)
                {
                    switch (naoLimpar)
                    {
                    case EnumNaoLimpar.Letras:
                        stringLimpa += char.IsLetter(digito) ? digito.ToString() : "";
                        break;

                    case EnumNaoLimpar.LetrasEspacos:
                        stringLimpa += (char.IsLetter(digito) || char.IsWhiteSpace(digito)) ? digito.ToString() : "";
                        break;

                    case EnumNaoLimpar.LetrasEspacosNumeros:
                        stringLimpa += (char.IsLetter(digito) || char.IsWhiteSpace(digito) || char.IsDigit(digito)) ? digito.ToString() : "";
                        break;

                    case EnumNaoLimpar.LetrasNumeros:
                        stringLimpa += (char.IsLetter(digito) || char.IsDigit(digito)) ? digito.ToString() : "";
                        break;

                    case EnumNaoLimpar.Numeros:
                        stringLimpa += char.IsDigit(digito) ? digito.ToString() : "";
                        break;

                    case EnumNaoLimpar.Login:
                        stringLimpa += (char.IsLetter(digito) || char.IsDigit(digito) || digito == '.' || digito == '-' || digito == '_') ? digito.ToString() : "";
                        break;

                    case EnumNaoLimpar.NumeroInteiro:
                        stringLimpa += (char.IsNumber(digito) || digito == '-') ? digito.ToString() : "";
                        break;

                    case EnumNaoLimpar.NumeroRealPonto:
                        stringLimpa += (char.IsNumber(digito) || digito == '.' || digito == ',' || digito == '-') ? digito.ToString() : "";
                        break;

                    case EnumNaoLimpar.NumeroRealVirgula:
                        stringLimpa += (char.IsNumber(digito) || digito == '.' || digito == ',' || digito == '-') ? digito.ToString() : "";
                        break;

                    case EnumNaoLimpar.Telefone:
                        stringLimpa += char.IsNumber(digito) ? digito.ToString() : "";
                        break;

                    case EnumNaoLimpar.Cep:
                        stringLimpa += char.IsNumber(digito) ? digito.ToString() : "";
                        break;
                    }
                }

                switch (naoLimpar)
                {
                case EnumNaoLimpar.NumeroRealPonto:
                    stringLimpa = (localDaManchaCinzenta.IndexOf('.') < localDaManchaCinzenta.IndexOf(',')) ? stringLimpa.Replace(".", "").Replace(",", ".") : stringLimpa.Replace(",", "");
                    break;

                case EnumNaoLimpar.NumeroRealVirgula:
                    stringLimpa = (localDaManchaCinzenta.IndexOf('.') < localDaManchaCinzenta.IndexOf(',')) ? stringLimpa.Replace(".", "") : stringLimpa.Replace(",", "").Replace(".", ",");
                    break;

                case EnumNaoLimpar.Telefone:
                    if (stringLimpa.Length == 10 || stringLimpa.Length == 11)
                    {
                        stringLimpa = stringLimpa.Insert(0, "(").Insert(3, ")").Insert(4, " ").Insert(stringLimpa.Length - 1, "-");
                    }
                    break;

                case EnumNaoLimpar.Cep:
                    if (stringLimpa.Length == 8)
                    {
                        stringLimpa = stringLimpa.Insert(stringLimpa.Length - 3, "-");
                    }
                    break;

                case EnumNaoLimpar.ValorMonetario:
                    for (int i = localDaManchaCinzenta.Length - 1; i >= 0; i--)
                    {
                        stringLimpa += (char.IsDigit(localDaManchaCinzenta[i]) || (localDaManchaCinzenta[i] == '.' && !stringLimpa.Contains('.') && !stringLimpa.Contains(',')) || (localDaManchaCinzenta[i] == ',' && !stringLimpa.Contains(',') && !stringLimpa.Contains('.'))) ? localDaManchaCinzenta[i].ToString() : "";
                    }

                    string valorAtual = stringLimpa;
                    stringLimpa = "";
                    for (int i = valorAtual.Length - 1; i >= 0; i--)
                    {
                        stringLimpa += (char.IsDigit(valorAtual[i]) || (valorAtual[i] == '.' && !stringLimpa.Contains('.') && !stringLimpa.Contains(',')) || (valorAtual[i] == ',' && !stringLimpa.Contains(',') && !stringLimpa.Contains('.'))) ? valorAtual[i].ToString() : "";
                    }
                    break;
                }

                return(stringLimpa);
            }