/// <summary> /// Esse método máscara uma string de acordo com o enum informado no segundo parâmetro. /// </summary> /// <param name="valor">Lista de string a ser máscarada.</param> /// <param name="formato">Enum que informa o formato da máscara.</param> /// <returns>Retorna qualquer tipagem de valor coerente a formatação.</returns> protected abstract Tipo[] Transformacao <Tipo>(string[] valor, EnumFormatos formato);
public Tipo[] Retorna <Tipo>(string[] valor, EnumFormatos emQue) { return(oBranco.NovoSet <Tipo>(valor, emQue)); }
/// <summary> /// Esse método máscara uma string de acordo com o enum informado no segundo parâmetro. /// </summary> /// <param name="valor">String a ser máscarada.</param> /// <param name="formato">Enum que informa o formato da máscara.</param> /// <returns>Retorna qualquer tipagem de valor coerente a formatação.</returns> protected override Tipo Transformacao <Tipo>(string valor, EnumFormatos formato) { switch (formato) { case EnumFormatos.CNPJ: return((Tipo)Convert.ChangeType(string.Format(@"00\.000\.000\/0000\-00", ContaHobbits(EliminaManchasCinzentas(valor))), typeof(Tipo))); case EnumFormatos.CPF: return((Tipo)Convert.ChangeType(string.Format(@"{0:000\.###\.###-##}", ContaHobbits(EliminaManchasCinzentas(valor))), typeof(Tipo))); case EnumFormatos.Inteiro: return((Tipo)Convert.ChangeType(ContaHobbits(valor), typeof(Tipo))); case EnumFormatos.NumericoBR: return((Tipo)Convert.ChangeType(string.Format(@"{0:#.#}", EliminaManchasCinzentas(valor, EnumNaoLimpar.ValorMonetario)), typeof(Tipo))); case EnumFormatos.NumericoBRarredondado: try { return((Tipo)Convert.ChangeType(string.Format(@"{0:#.00}", Math.Round(Convert.ToDecimal(EliminaManchasCinzentas(valor, EnumNaoLimpar.ValorMonetario)), 2)), typeof(Tipo))); } catch { throw new ArgumentException("Não é possível arrendondar padrão não númerico."); } case EnumFormatos.DataCompleta: try { return((Tipo)Convert.ChangeType(Convert.ToDateTime(EliminaManchasCinzentas(valor)).ToString("dd/MM/yyyy"), typeof(Tipo))); } catch { throw new ArgumentException("Não é possível formatar datas fora do padrão DateTime."); } case EnumFormatos.DataCompletaHora: try { return((Tipo)Convert.ChangeType(Convert.ToDateTime(EliminaManchasCinzentas(valor)).ToString("dd/MM/yyyy HH:mm:ss"), typeof(Tipo))); } catch { throw new ArgumentException("Não é possível formatar datas fora do padrão DateTime."); } case EnumFormatos.DataPequena: try { return((Tipo)Convert.ChangeType(Convert.ToDateTime(EliminaManchasCinzentas(valor)).ToString("d/M/yy"), typeof(Tipo))); } catch { throw new ArgumentException("Não é possível formatar datas fora do padrão DateTime."); } case EnumFormatos.DataPequenaHora: try { return((Tipo)Convert.ChangeType(Convert.ToDateTime(EliminaManchasCinzentas(valor)).ToString("d/M/yy HH:mm:ss"), typeof(Tipo))); } catch { throw new ArgumentException("Não é possível formatar datas fora do padrão DateTime."); } case EnumFormatos.DataCompletaEUA: try { return((Tipo)Convert.ChangeType(Convert.ToDateTime(EliminaManchasCinzentas(valor)).ToString("yyyy-MM-dd"), typeof(Tipo))); } catch { throw new ArgumentException("Não é possível formatar datas fora do padrão DateTime."); } case EnumFormatos.DataCompletaHoraEUA: try { return((Tipo)Convert.ChangeType(Convert.ToDateTime(EliminaManchasCinzentas(valor)).ToString("yyyy-MM-dd HH:mm:ss"), typeof(Tipo))); } catch { throw new ArgumentException("Não é possível formatar datas fora do padrão DateTime."); } case EnumFormatos.DataPequenaEUA: try { return((Tipo)Convert.ChangeType(Convert.ToDateTime(EliminaManchasCinzentas(valor)).ToString("yy-M-d"), typeof(Tipo))); } catch { throw new ArgumentException("Não é possível formatar datas fora do padrão DateTime."); } case EnumFormatos.DataPequenaHoraEUA: try { return((Tipo)Convert.ChangeType(Convert.ToDateTime(EliminaManchasCinzentas(valor)).ToString("yy-M-d HH:mm:ss"), typeof(Tipo))); } catch { throw new ArgumentException("Não é possível formatar datas fora do padrão DateTime."); } case EnumFormatos.Hora: try { return((Tipo)Convert.ChangeType(Convert.ToDateTime(EliminaManchasCinzentas(valor)).ToString("HH:mm:ss"), typeof(Tipo))); } catch { throw new ArgumentException("Não é possível formatar datas fora do padrão DateTime."); } case EnumFormatos.NumericoEUA: return((Tipo)Convert.ChangeType(string.Format(@"{0:#.#}", EliminaManchasCinzentas(valor, EnumNaoLimpar.ValorMonetario)).Replace(",", "."), typeof(Tipo))); case EnumFormatos.NumericoEUAarredondado: try { return((Tipo)Convert.ChangeType(string.Format(@"{0:#.00}", Math.Round(Convert.ToDecimal(EliminaManchasCinzentas(valor, EnumNaoLimpar.ValorMonetario), CultureInfo.InvariantCulture), 2)).Replace(",", "."), typeof(Tipo))); } catch { throw new ArgumentException("Não é possível arrendondar padrão não númerico."); } default: throw new ArgumentException("Erro de formatação"); } }
/// <summary> /// Esse método máscara uma string de acordo com o enum informado no segundo parâmetro. /// </summary> /// <param name="valor">Lista de string a ser máscarada.</param> /// <param name="formato">Enum que informa o formato da máscara.</param> /// <returns>Retorna qualquer tipagem de valor coerente a formatação.</returns> protected override Tipo[] Transformacao <Tipo>(string[] valor, EnumFormatos formato) { List <Tipo> resultado = new List <Tipo>(); switch (formato) { case EnumFormatos.CNPJ: for (int i = 0; i < valor.Length; i++) { resultado.Add((Tipo)Convert.ChangeType(String.Format(@"{0:00\.000\.000\/0000\-00}", ContaHobbits(EliminaManchasCinzentas(valor)[i])), typeof(Tipo))); } break; case EnumFormatos.CPF: for (int i = 0; i < valor.Length; i++) { resultado.Add((Tipo)Convert.ChangeType(String.Format(@"{0:000\.000\.000\-00}", ContaHobbits(EliminaManchasCinzentas(valor)[i])), typeof(Tipo))); } break; case EnumFormatos.Inteiro: for (int i = 0; i < valor.Length; i++) { resultado.Add((Tipo)Convert.ChangeType(ContaHobbits(valor[i]), typeof(Tipo))); } break; case EnumFormatos.NumericoBR: for (int i = 0; i < valor.Length; i++) { resultado.Add((Tipo)Convert.ChangeType(string.Format(@"{0:#.#}", EliminaManchasCinzentas(valor[i], EnumNaoLimpar.ValorMonetario)), typeof(Tipo))); } break; case EnumFormatos.NumericoBRarredondado: try { for (int i = 0; i < valor.Length; i++) { resultado.Add((Tipo)Convert.ChangeType(string.Format(@"{0:#.00}", Math.Round(Convert.ToDecimal(EliminaManchasCinzentas(valor[i], EnumNaoLimpar.ValorMonetario)), 2)), typeof(Tipo))); } break; } catch { throw new ArgumentException("Não é possível arrendondar padrão não númerico."); } case EnumFormatos.DataCompleta: try { for (int i = 0; i < valor.Length; i++) { resultado.Add((Tipo)Convert.ChangeType(Convert.ToDateTime(EliminaManchasCinzentas(valor[i])).ToString("dd/MM/yyyy"), typeof(Tipo))); } break; } catch { throw new ArgumentException("Não é possível formatar datas fora do padrão DateTime."); } case EnumFormatos.DataCompletaHora: try { for (int i = 0; i < valor.Length; i++) { resultado.Add((Tipo)Convert.ChangeType(Convert.ToDateTime(EliminaManchasCinzentas(valor[i])).ToString("dd/MM/yyyy HH:mm:ss"), typeof(Tipo))); } break; } catch { throw new ArgumentException("Não é possível formatar datas fora do padrão DateTime."); } case EnumFormatos.DataPequena: try { for (int i = 0; i < valor.Length; i++) { resultado.Add((Tipo)Convert.ChangeType(Convert.ToDateTime(EliminaManchasCinzentas(valor[i])).ToString("d/M/yy"), typeof(Tipo))); } break; } catch { throw new ArgumentException("Não é possível formatar datas fora do padrão DateTime."); } case EnumFormatos.DataPequenaHora: try { for (int i = 0; i < valor.Length; i++) { resultado.Add((Tipo)Convert.ChangeType(Convert.ToDateTime(EliminaManchasCinzentas(valor[i])).ToString("d/M/yy HH:mm:ss"), typeof(Tipo))); } break; } catch { throw new ArgumentException("Não é possível formatar datas fora do padrão DateTime."); } case EnumFormatos.DataCompletaEUA: try { for (int i = 0; i < valor.Length; i++) { resultado.Add((Tipo)Convert.ChangeType(Convert.ToDateTime(EliminaManchasCinzentas(valor[i])).ToString("yyyy/MM/dd"), typeof(Tipo))); } break; } catch { throw new ArgumentException("Não é possível formatar datas fora do padrão DateTime."); } case EnumFormatos.DataCompletaHoraEUA: try { for (int i = 0; i < valor.Length; i++) { resultado.Add((Tipo)Convert.ChangeType(Convert.ToDateTime(EliminaManchasCinzentas(valor[i])).ToString("yyyy/MM/dd HH:mm:ss"), typeof(Tipo))); } break; } catch { throw new ArgumentException("Não é possível formatar datas fora do padrão DateTime."); } case EnumFormatos.DataPequenaEUA: try { for (int i = 0; i < valor.Length; i++) { resultado.Add((Tipo)Convert.ChangeType(Convert.ToDateTime(EliminaManchasCinzentas(valor[i])).ToString("yy-M-d"), typeof(Tipo))); } break; } catch { throw new ArgumentException("Não é possível formatar datas fora do padrão DateTime."); } case EnumFormatos.DataPequenaHoraEUA: try { for (int i = 0; i < valor.Length; i++) { resultado.Add((Tipo)Convert.ChangeType(Convert.ToDateTime(EliminaManchasCinzentas(valor[i])).ToString("yy-M-d HH:mm:ss"), typeof(Tipo))); } break; } catch { throw new ArgumentException("Não é possível formatar datas fora do padrão DateTime."); } case EnumFormatos.Hora: try { for (int i = 0; i < valor.Length; i++) { resultado.Add((Tipo)Convert.ChangeType(Convert.ToDateTime(EliminaManchasCinzentas(valor[i])).ToString("HH:mm:ss"), typeof(Tipo))); } break; } catch { throw new ArgumentException("Não é possível formatar datas fora do padrão DateTime."); } case EnumFormatos.NumericoEUA: for (int i = 0; i < valor.Length; i++) { resultado.Add((Tipo)Convert.ChangeType(string.Format(@"{0:#.#}", EliminaManchasCinzentas(valor[i], EnumNaoLimpar.ValorMonetario)).Replace(",", "."), typeof(Tipo))); } break; case EnumFormatos.NumericoEUAarredondado: try { for (int i = 0; i < valor.Length; i++) { resultado.Add((Tipo)Convert.ChangeType(string.Format(@"{0:#.00}", Math.Round(Convert.ToDecimal(EliminaManchasCinzentas(valor[i], EnumNaoLimpar.ValorMonetario), CultureInfo.InvariantCulture), 2)).Replace(",", "."), typeof(Tipo))); } break; } catch { throw new ArgumentException("Não é possível arrendondar padrão não númerico."); } default: throw new ArgumentException("Erro de formatação"); } return(resultado.ToArray()); }
/// <summary> /// Esse método máscara uma string de acordo com o enum informado no segundo parâmetro. /// </summary> /// <param name="valor">Lista de string a ser máscarada.</param> /// <param name="formato">Enum que informa o formato da máscara.</param> /// <returns>Retorna qualquer tipagem de valor coerente a formatação.</returns> public Tipo[] NovoSet <Tipo>(string[] valor, EnumFormatos formato) { return(Transformacao <Tipo>(valor, formato)); }