示例#1
0
 /// <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));
 }