示例#1
0
        /// <summary>
        /// Metodo para ler o retorno e ini do metodo ObterRetorno.
        /// </summary>
        /// <param name="retorno"></param>
        /// <returns></returns>
        public static RetornoBoleto LerRetorno(string retorno)
        {
            var iniFile = ACBrIniFile.Parse(retorno);

            var ret = new RetornoBoleto
            {
                Retorno = retorno
            };

            iniFile.ReadFromIni(ret.Cedente, "CEDENTE");
            iniFile.ReadFromIni(ret.Banco, "BANCO");
            iniFile.ReadFromIni(ret.Conta, "CONTA");

            foreach (var section in iniFile.Where(x => x.Name.StartsWith("TITULO")))
            {
                var item = section.ReadFromINi <RetornoTitulo>();
                section.ReadFromINi(item.Sacado);

                var id = Regex.Replace(section.Name, "[^0-9]", string.Empty);
                if (!string.IsNullOrWhiteSpace(id))
                {
                    foreach (var sec in iniFile.Where(x => x.Name.StartsWith($"MotivoRejeicao{id}-")))
                    {
                        var rejeicao = sec.ReadFromINi <RetornoRejeicao>();
                        item.Rejeicoes.Add(rejeicao);
                    }
                }

                ret.Titulos.Add(item);
            }

            return(ret);
        }
示例#2
0
        public RetornoBoleto ObterRetorno(string eDir, string eNomeArq)
        {
            var bufferLen = BUFFER_LEN;
            var buffer    = new StringBuilder(bufferLen);

            var method = GetMethod <Boleto_ObterRetorno>();
            var ret    = ExecuteMethod(() => method(libHandle, ToUTF8(eDir), ToUTF8(eNomeArq), buffer, ref bufferLen));

            CheckResult(ret);

            return(RetornoBoleto.LerRetorno(ProcessResult(buffer, bufferLen)));
        }