public Boletos LerArquivoRetorno(Stream arquivo) { Boletos.Clear(); try { if (TipoArquivo == TipoArquivo.CNAB400 && Banco.IdsRetornoCnab400RegistroDetalhe.Count == 0) { throw new Exception("Banco " + Banco.Codigo.ToString() + " não implementou os Ids do Registro Retorno do CNAB400."); } using (StreamReader arquivoRetorno = new StreamReader(arquivo, System.Text.Encoding.UTF8)) { while (!arquivoRetorno.EndOfStream) { var registro = arquivoRetorno.ReadLine(); if (TipoArquivo == TipoArquivo.CNAB240) { LerLinhaDoArquivoRetornoCNAB240(registro); } if (TipoArquivo == TipoArquivo.CNAB400) { LerLinhaDoArquivoRetornoCNAB400(registro); } } } } catch (Exception ex) { throw new Exception("Erro ao ler arquivo.", ex); } return(Boletos); }
private void LerArquivoRetorno2(Stream arquivo) { Boletos.Clear(); try { using (StreamReader arquivoRetorno = new StreamReader(arquivo, System.Text.Encoding.UTF8)) { if (arquivoRetorno.EndOfStream) { return; } //busca o primeiro registro do arquivo var registro = arquivoRetorno.ReadLine(); //atribui o tipo de acordo com o conteúdo do arquivo TipoArquivo = registro.Length == 240 ? TipoArquivo.CNAB240 : TipoArquivo.CNAB400; if (TipoArquivo == TipoArquivo.CNAB400 && Banco.IdsRetornoCnab400RegistroDetalhe.Count == 0) { throw new Exception("Banco " + Banco.Codigo.ToString() + " não implementou os Ids do Registro Retorno do CNAB400."); } //instacia o banco de acordo com o codigo/id do banco presente no arquivo de retorno Banco = Boleto2Net.Banco.Instancia(Utils.ToInt32(registro.Substring(TipoArquivo == TipoArquivo.CNAB240 ? 0 : 76, 3))); //define a posicao do reader para o início arquivoRetorno.DiscardBufferedData(); arquivoRetorno.BaseStream.Seek(0, SeekOrigin.Begin); while (!arquivoRetorno.EndOfStream) { registro = arquivoRetorno.ReadLine(); if (TipoArquivo == TipoArquivo.CNAB240) { LerLinhaDoArquivoRetornoCNAB240(registro); } else if (TipoArquivo == TipoArquivo.CNAB400) { LerLinhaDoArquivoRetornoCNAB400(registro); } } } } catch (Exception ex) { throw new Exception("Erro ao ler arquivo.", ex); } }
public bool LimparBoletos(ref string mensagemErro) { mensagemErro = ""; try { if (!setupOk) { mensagemErro = "Realize o setup da cobrança antes de executar este método."; return(false); } boletos.Clear(); return(true); } catch (Exception ex) { while (ex != null) { mensagemErro += ex.Message + Environment.NewLine; ex = ex.InnerException; } return(false); } }