Example #1
0
        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);
            }
        }
Example #2
0
        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());
                }
            }
        }