/// <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)); } }
/// <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); }