public void BancoSicredi_GerarRemessaCNAB400() { var boletos = Enumerable.Range(0, 3).Select(o => { var boleto = GerarBoleto(); boleto.Boleto.Valida(); return(boleto); }); Boletos itensRemessa = new Boletos(); itensRemessa.AddRange(boletos.Select(o => o.Boleto)); var banco = itensRemessa.First().Banco; var cedente = itensRemessa.First().Cedente; ArquivoRemessa arquivoRemessa = new ArquivoRemessa(TipoArquivo.CNAB400); arquivoRemessa.LinhaDeArquivoGerada += (object sender, LinhaDeArquivoGeradaArgs e) => { Debug.WriteLine(e.Linha); }; using (var stream = new MemoryStream()) { arquivoRemessa.GerarArquivoRemessa("08111081111", banco, cedente, itensRemessa, stream, 1); var conteudo = Encoding.ASCII.GetString(stream.ToArray()); Debug.WriteLine(conteudo); } }
public byte[] GerarArquivoRemessa(BoletosViewModel models) { var boletos = new Boletos(); var boletoViewModels = models.Boletos; boletos.AddRange(boletoViewModels.Select(Popula)); if (models.CodigoBanco != null) { boletos.Banco = Banco.Instancia(models.CodigoBanco.Value); } using (var ms = new MemoryStream()) { var remessa = new ArquivoRemessa(boletos.Banco, TipoArquivo.CNAB400, 1); remessa.GerarArquivoRemessa(boletos, ms); ms.Position = 0; using (var lerArquivo = new StreamReader(ms)) { var sbRefazArquivo = new StringBuilder(); string strTexto; int conta; while (lerArquivo.Peek() != -1) { strTexto = lerArquivo.ReadLine(); if (strTexto != null) { conta = strTexto.Length; if (conta < 240) { conta = 240 - conta; string strEspaco = null; for (int I = 1; I <= conta; I++) { strEspaco = strEspaco + " "; } sbRefazArquivo.AppendLine(strTexto + strEspaco); } else { sbRefazArquivo.AppendLine(strTexto); } } } return(sbRefazArquivo.ToString().ToBytes()); } } }