public override void LerArquivoRetorno(IBanco banco, Stream arquivo)
        {
            try
            {
                StreamReader stream = new StreamReader(arquivo, System.Text.Encoding.UTF8);
                // Identificação do registro detalhe
                List <string> IdsRegistroDetalhe = new List <string>();

                // Lendo o arquivo
                string linha = stream.ReadLine();
                this.HeaderRetorno = banco.LerHeaderRetornoCNAB400(linha);

                // Próxima linha (DETALHE)
                linha = stream.ReadLine();

                //tem arquivo de retorno que possui somente cabeçalho
                if (linha != null)
                {
                    switch (banco.Codigo)
                    {
                    // 85 - CECRED - Código de registro detalhe 7 para CECRED
                    case (int)Bancos.CECRED:
                        IdsRegistroDetalhe.Add("7");
                        break;

                    // 1 - Banco do Brasil- Código de registro detalhe 7 para convênios com 7 posições, e detalhe 1 para convênios com 6 posições(colocado as duas, pois não interferem em cada tipo de arquivo)
                    case (int)Bancos.BancoBrasil:
                        IdsRegistroDetalhe.Add("1");    //Para convênios de 6 posições
                        IdsRegistroDetalhe.Add("7");    //Para convênios de 7 posições
                        break;

                    default:
                        IdsRegistroDetalhe.Add("1");
                        break;
                    }

                    while (linha != null)
                    {
                        if (IdsRegistroDetalhe.Contains(DetalheRetorno.PrimeiroCaracter(linha)))
                        {
                            DetalheRetorno detalhe = banco.LerDetalheRetornoCNAB400(linha);
                            ListaDetalhe.Add(detalhe);
                            OnLinhaLida(detalhe, linha);
                        }

                        linha = stream.ReadLine();
                    }
                }

                //TODO: Tratar Triller.

                stream.Close();
            }
            catch (Exception ex)
            {
                throw new Exception("Erro ao ler arquivo.", ex);
            }
        }
Example #2
0
        public override void LerArquivoRetorno(IBanco banco, Stream arquivo)
        {
            try
            {
                StreamReader stream = new StreamReader(arquivo, System.Text.Encoding.UTF8);
                string       linha  = "";
                // Identificação do registro detalhe
                List <string> IdsRegistroDetalhe = new List <string>();

                // Lendo o arquivo
                linha = stream.ReadLine();
                this.HeaderRetorno = banco.LerHeaderRetornoCNAB400(linha);

                // Próxima linha (DETALHE)
                linha = stream.ReadLine();

                // 85 - CECRED - Código de registro detalhe 7 para CECRED
                // 1 - Banco do Brasil- Código de registro detalhe 7 para convênios com 7 posições, e detalhe 1 para convênios com 6 posições(colocado as duas, pois não interferem em cada tipo de arquivo)
                if (banco.Codigo == 85)
                {
                    IdsRegistroDetalhe.Add("7");
                }
                else if (banco.Codigo == 1)
                {
                    IdsRegistroDetalhe.Add("1"); //Para convênios de 6 posições
                    IdsRegistroDetalhe.Add("7"); //Para convênios de 7 posições
                }
                else
                {
                    IdsRegistroDetalhe.Add("1");
                }

                while (IdsRegistroDetalhe.Contains(DetalheRetorno.PrimeiroCaracter(linha)))
                {
                    DetalheRetorno detalhe = banco.LerDetalheRetornoCNAB400(linha);
                    ListaDetalhe.Add(detalhe);
                    OnLinhaLida(detalhe, linha);
                    linha = stream.ReadLine();
                }

                stream.Close();
            }
            catch (Exception ex)
            {
                throw new Exception("Erro ao ler arquivo.", ex);
            }
        }