示例#1
0
        public bool GerarTransacoesEmissor(Arquivo arquivo)
        {
            InformacaoRegistroDAO     infregDAO   = new InformacaoRegistroDAO();
            RegistroDAO               regDAO      = new RegistroDAO();
            List <InformacaoRegistro> informacoes = infregDAO.BuscarDetalhesComprimidosArquivo(arquivo.IdArquivo);


            int limit = informacoes.Count();

            try
            {
                for (int i = 0; i < limit; i++)

                {
                    InformacaoRegistro informacoesTransacao = informacoes[i];
                    if (informacoesTransacao.Chave != string.Empty)
                    {
                        TransacaoElo transacaoElo = new TransacaoElo();
                        transacaoElo.NomeArquivo = arquivo.NomeArquivo;
                        transacaoElo.Id_Incoming = informacoesTransacao.IdInformacaoRegistro;
                        transacaoElo.FlagTransacaoInternacional = true;
                        DecomporLinha(ref transacaoElo, StringUtil.Unzip(informacoesTransacao.Valor), arquivo.IdLayout);
                        InserirBufferElo(transacaoElo, arquivo.IdEmissor);
                        transacaoElo = null;
                    }
                }
                AtualizarBufferElo(arquivo.IdEmissor);
                return(true);
            }catch (Exception ex)
            {
                throw new Exception("Erro ao gerar transações na base do emissor." + ex.Message);
            }
        }
示例#2
0
        private void InstanciarObjetoTransacao(ref TransacaoElo transacao, Registro registro, string linha)
        {
            List <Campo> campos = registro.Campos.Where(x => x.FlagRelevante == true).ToList();

            transacao.FlagTransacaoInternacional = true;
            switch (registro.ChaveRegistro)
            {
            case "0506":
                transacao.AcquireReferenceNumber = ArquivoUtils.ExtrairInformacao(linha, campos.Find(c => c.NomeCampo.Equals("NUMERO DE REFERENCIA DO ADQUIRENTE")).PosInicio, campos.Find(c => c.NomeCampo.Equals("NUMERO DE REFERENCIA DO ADQUIRENTE")).PosFim);
                transacao.DataProcessamento      = DataUtils.RetornaData(ArquivoUtils.ExtrairInformacao(linha, campos.Find(c => c.NomeCampo.Equals("DATA ORIGINAL DE POSTAGEM")).PosInicio, campos.Find(c => c.NomeCampo.Equals("DATA ORIGINAL DE POSTAGEM")).PosFim));
                transacao.DataTransacao          = DataUtils.RetornaData(ArquivoUtils.ExtrairInformacao(linha, campos.Find(c => c.NomeCampo.Equals("DATA ORIGINAL DA TRANSACAO")).PosInicio, campos.Find(c => c.NomeCampo.Equals("DATA ORIGINAL DA TRANSACAO")).PosFim));
                transacao.Cartao                 = ArquivoUtils.ExtrairInformacao(linha, campos.Find(c => c.NomeCampo.Equals("NUMERO CARTAO")).PosInicio, campos.Find(c => c.NomeCampo.Equals("NUMERO CARTAO")).PosFim);
                transacao.Valor                  = Decimal.Parse(StringUtil.StringToMoney(ArquivoUtils.ExtrairInformacao(linha, campos.Find(c => c.NomeCampo.Equals("VALOR DA TRANSACAO")).PosInicio, campos.Find(c => c.NomeCampo.Equals("VALOR DA TRANSACAO")).PosFim)));
                transacao.ValorOrigem            = Decimal.Parse(StringUtil.StringToMoney(ArquivoUtils.ExtrairInformacao(linha, campos.Find(c => c.NomeCampo.Equals("VALOR DA TRANSACAO")).PosInicio, campos.Find(c => c.NomeCampo.Equals("VALOR DA TRANSACAO")).PosFim)));
                transacao.NomeEstabelecimento    = ArquivoUtils.ExtrairInformacao(linha, campos.Find(c => c.NomeCampo.Equals("NOME DO EC OU DESCRICAO DO AJUSTE")).PosInicio, campos.Find(c => c.NomeCampo.Equals("NOME DO EC OU DESCRICAO DO AJUSTE")).PosFim);
                transacao.CodigoMCC              = Int16.Parse(ArquivoUtils.ExtrairInformacao(linha, campos.Find(c => c.NomeCampo.Equals("MCC")).PosInicio, campos.Find(c => c.NomeCampo.Equals("MCC")).PosFim));
                transacao.IdentificacaoTransacao = ArquivoUtils.ExtrairInformacao(linha, campos.Find(c => c.NomeCampo.Equals("NUMERO DO ID DA TRANSACAO")).PosInicio, campos.Find(c => c.NomeCampo.Equals("NUMERO DO ID DA TRANSACAO")).PosFim);
                transacao.CodigoTransacao        = ArquivoUtils.ExtrairInformacao(linha, campos.Find(c => c.NomeCampo.Equals("CODIGO DA TRANSACAO")).PosInicio, campos.Find(c => c.NomeCampo.Equals("CODIGO DA TRANSACAO")).PosFim);
                transacao.MensagemTexto          = "TRANSACAO_INTERNACIONAL";
                break;

            default:
                break;
            }
        }
示例#3
0
 public void DecomporLinha(ref TransacaoElo transacaoElo, string linha)
 {
     string[] linhasBase = StringUtil.Split(Constantes.SPLITTER_LINHA, linha);
     foreach (string _linha in linhasBase)
     {
         string[] linhaComposta = StringUtil.Split(Constantes.SPLITTER_REGISTRO, _linha);
         //InstanciarObjetoTransacao(ref transacaoElo, registrosArquivo.Where(x => x.IdRegistro == (int.Parse(linhaComposta[0]))).First(), linhaComposta[1]);
         InstanciarObjetoTransacao(ref transacaoElo, registroDAO.Buscar(int.Parse(linhaComposta[0])), linhaComposta[1]);
     }
 }
示例#4
0
        public void TestarContextoEmissor()
        {
            TransacaoElo t = new TransacaoElo();

            t.TE = "10";
            t.FlagProblemaTratamento = false;
            t.DataProcessamento      = DateTime.Now;
            t.DataTransacao          = DateTime.Now;
            new TransacoesEloDAO(86).Salvar(t);
        }
示例#5
0
 private void InserirBufferElo(TransacaoElo transacao, int idEmissor)
 {
     if (bufferElo.Count < Constantes.BUFFER_LIMIT)
     {
         bufferElo.Add(transacao);
     }
     else
     {
         PersistirBufferElo(idEmissor);
         bufferElo.Add(transacao);
     }
 }
示例#6
0
        public void  DecomporLinha(ref TransacaoElo transacaoElo, string linha, int idLayout)
        {
            string tRegistro = "";

            string[] registros = StringUtils.Split(Constantes.SPLITTER_LINHA, linha);
            foreach (string reg in registros)
            {
                tRegistro = TipoRegistroLinha(reg);
                if (tRegistro.Equals(Constantes.LiquidacaoInternacionalElo.DETALHE_COM_SDR) || tRegistro.Equals(Constantes.LiquidacaoInternacionalElo.DETALHE_SEM_SDR))
                {
                    InstanciarObjetoTransacao(ref transacaoElo, registroDAO.Buscar("0506", idLayout), reg);
                }
            }
        }
示例#7
0
        public bool ValidarTransacao(ref TransacaoElo transacao, int idEmissor, long idInformacaoRegistro)
        {
            string codAutorizacao = transacao.CodigoAutorizacao;
            AutorizacaoEvtExternoCompraNaoProcessado aut = new AutorizacoesDAO(idEmissor).LocalizaAutorizacaoEventoExternoCompraNaoProcessado(codAutorizacao).FirstOrDefault();
            List <ErroValidacaoArquivo> error            = new ValidaArquivo(ref transacao).Validar(aut, idInformacaoRegistro);

            if (error.Count > 0)
            {
                transacao.FlagProblemaTratamento = true;
                InserirBufferErro(error);

                return(false);
            }
            return(true);
        }
示例#8
0
        public bool GerarTransacoesEmissor(Arquivo arquivo)
        {
            InformacaoRegistroDAO     infregDAO   = new InformacaoRegistroDAO();
            RegistroDAO               regDAO      = new RegistroDAO();
            List <InformacaoRegistro> informacoes = infregDAO.BuscarDetalhesComprimidosArquivo(arquivo.IdArquivo);

            int limit = informacoes.Count();

            for (int i = 0; i < limit; i++)
            {
                try
                {
                    InformacaoRegistro informacoesTransacao = informacoes[i];
                    if (informacoesTransacao.Chave != string.Empty)
                    {
                        TransacaoElo transacaoElo = new TransacaoElo();
                        transacaoElo.NomeArquivo = arquivo.NomeArquivo;
                        transacaoElo.IdArquivo   = arquivo.IdArquivo;
                        transacaoElo.Id_Incoming = informacoes[i].IdInformacaoRegistro;
                        transacaoElo.FlagTransacaoInternacional = false;     //as transacoes internacionais sao processadas em arquivo especifico
                        DecomporLinha(ref transacaoElo, StringUtil.Unzip(informacoesTransacao.Valor));
                        ValidarTransacao(ref transacaoElo, arquivo.IdEmissor, informacoesTransacao.IdInformacaoRegistro);
                        InserirBufferElo(transacaoElo, arquivo.IdEmissor);
                        transacaoElo = null;
                    }
                }
                catch (Exception ex)
                {
                    informacoes[i].FlagErro = true;
                    infregDAO.Update(informacoes[i]);
                    throw new Exception("Erro ao gerar transações na base do emissor." + ex.Message);
                }
            }

            PersistirBufferErro();
            PersistirBufferElo(arquivo.IdEmissor);
            return(true);
        }
示例#9
0
        public void Salvar(TransacaoElo transacao)
        {
            try
            {
                if (transacao.Id_TransacaoElo == 0)
                {
                    _dao.Add(transacao);

                    _dao.CommitChanges();
                }
                else
                {
                    _dao.Update(transacao);
                }
            }
            catch (DbUpdateException dbex)
            {
                throw dbex;
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
示例#10
0
        public void InstanciarObjetoTransacao(ref TransacaoElo transacao, Registro registro, string linha)
        {
            List <Campo> campos = registro.Campos.Where(c => c.FlagRelevante == true).ToList();

            if (transacao == null)
            {
                transacao = new TransacaoElo();
            }

            string tipoTransacao = TipoTransacaoLinha(linha);

            transacao.CodigoTransacao = ExtrairInformacao(linha, campos.Find(c => c.NomeCampo.Equals("CÓDIGO DA TRANSAÇÃO")).PosInicio, campos.Find(c => c.NomeCampo.Equals("CÓDIGO DA TRANSAÇÃO")).PosFim);
            transacao.TE = tipoTransacao;



            if (tipoTransacao.Equals(Constantes.TE01) || tipoTransacao.Equals(Constantes.TE05) || tipoTransacao.Equals(Constantes.TE06) || tipoTransacao.Equals(Constantes.TE15) ||
                tipoTransacao.Equals(Constantes.TE16) || tipoTransacao.Equals(Constantes.TE25) || tipoTransacao.Equals(Constantes.TE26) || tipoTransacao.Equals(Constantes.TE35) ||
                tipoTransacao.Equals(Constantes.TE36))
            {
                switch (TipoRegistroTransacao(linha))
                {
                case "0":

                    transacao.Cartao = ExtrairInformacao(linha, campos.Find(c => c.NomeCampo.Equals("NÚMERO DO CARTÃO")).PosInicio, campos.Find(c => c.NomeCampo.Equals("NÚMERO DO CARTÃO")).PosFim);
                    transacao.CodigoCredenciadora    = ExtrairInformacao(linha, campos.Find(c => c.NomeCampo.Equals("CÓDIGO DO ADQUIRENTE")).PosInicio, campos.Find(c => c.NomeCampo.Equals("CÓDIGO DO ADQUIRENTE")).PosFim);
                    transacao.AcquireReferenceNumber = ExtrairInformacao(linha, campos.Find(c => c.NomeCampo.Equals("NÚMERO DE REFERÊNCIA DA TRANSAÇÃO")).PosInicio, campos.Find(c => c.NomeCampo.Equals("NÚMERO DE REFERÊNCIA DA TRANSAÇÃO")).PosFim);
                    transacao.CicloApresentacao      = int.Parse(ExtrairInformacao(linha, campos.Find(c => c.NomeCampo.Equals("IDENTIFICAÇÃO DO TIPO DE TRANSAÇÃO")).PosInicio, campos.Find(c => c.NomeCampo.Equals("IDENTIFICAÇÃO DO TIPO DE TRANSAÇÃO")).PosFim));
                    transacao.DataTransacao          = LAB5Utils.DataUtils.RetornaData(ExtrairInformacao(linha, campos.Find(c => c.NomeCampo.Equals("DATA DA VENDA")).PosInicio, campos.Find(c => c.NomeCampo.Equals("DATA DA VENDA")).PosFim));
                    transacao.Valor               = Decimal.Parse(StringUtil.StringToMoney(ExtrairInformacao(linha, campos.Find(c => c.NomeCampo.Equals("VALOR DA VENDA/CHARGEBACK")).PosInicio, campos.Find(c => c.NomeCampo.Equals("VALOR DA VENDA/CHARGEBACK")).PosFim)));
                    transacao.CodigoMoeda         = Int16.Parse(ExtrairInformacao(linha, campos.Find(c => c.NomeCampo.Equals("CÓDIGO DE MOEDA DA TRANSAÇÃO")).PosInicio, campos.Find(c => c.NomeCampo.Equals("CÓDIGO DE MOEDA DA TRANSAÇÃO")).PosFim));
                    transacao.NomeEstabelecimento = ExtrairInformacao(linha, campos.Find(c => c.NomeCampo.Equals("NOME DO ESTABELECIMENTO COMERCIAL (EC)")).PosInicio, campos.Find(c => c.NomeCampo.Equals("NOME DO ESTABELECIMENTO COMERCIAL (EC)")).PosFim);
                    transacao.CodigoMCC           = Int16.Parse(ExtrairInformacao(linha, campos.Find(c => c.NomeCampo.Equals("CÓDIGO DO RAMO DE ATIVIDADE DO EC")).PosInicio, campos.Find(c => c.NomeCampo.Equals("CÓDIGO DO RAMO DE ATIVIDADE DO EC")).PosFim));
                    transacao.Id_CodigoChargeback = int.Parse(ExtrairInformacao(linha, campos.Find(c => c.NomeCampo.Equals("CÓDIGO DE MOTIVO DO CHARGEBACK")).PosInicio, campos.Find(c => c.NomeCampo.Equals("CÓDIGO DE MOTIVO DO CHARGEBACK")).PosFim));
                    transacao.CodigoAutorizacao   = ExtrairInformacao(linha, campos.Find(c => c.NomeCampo.Equals("CÓDIGO DE AUTORIZAÇÃO DA TRANSAÇÃO")).PosInicio, campos.Find(c => c.NomeCampo.Equals("CÓDIGO DE AUTORIZAÇÃO DA TRANSAÇÃO")).PosFim);
                    transacao.DataProcessamento   = LAB5Utils.DataUtils.RetornaData(ExtrairInformacao(linha, campos.Find(c => c.NomeCampo.Equals("DATA DE MOVIMENTO/APRESENTAÇÃO DO CHARGEBACK")).PosInicio, campos.Find(c => c.NomeCampo.Equals("DATA DE MOVIMENTO/APRESENTAÇÃO DO CHARGEBACK")).PosFim));
                    break;

                case "1":
                    transacao.IndicadorMeio         = ExtrairInformacao(linha, campos.Find(c => c.NomeCampo.Equals("INDICADOR DE TRANSAÇÃO POR CORRESPONDÊNCIA/TELEFONE/COMÉRCIO ELETRÔNICO")).PosInicio, campos.Find(c => c.NomeCampo.Equals("INDICADOR DE TRANSAÇÃO POR CORRESPONDÊNCIA/TELEFONE/COMÉRCIO ELETRÔNICO")).PosFim);
                    transacao.NumeroParcelas        = int.Parse(ExtrairInformacao(linha, campos.Find(c => c.NomeCampo.Equals("QUANTIDADE DE PARCELAS DA TRANSAÇÃO")).PosInicio, campos.Find(c => c.NomeCampo.Equals("QUANTIDADE DE PARCELAS DA TRANSAÇÃO")).PosFim));
                    transacao.NumeroEstabelecimento = ExtrairInformacao(linha, campos.Find(c => c.NomeCampo.Equals("NÚMERO DO EC")).PosInicio, campos.Find(c => c.NomeCampo.Equals("NÚMERO DO EC")).PosFim);
                    transacao.NSUOrigem             = ExtrairInformacao(linha, campos.Find(c => c.NomeCampo.Equals("NÚMERO LÓGICO DO EQUIPAMENTO")).PosInicio, campos.Find(c => c.NomeCampo.Equals("NÚMERO LÓGICO DO EQUIPAMENTO")).PosFim);
                    transacao.ParcelaPedida         = int.Parse(ExtrairInformacao(linha, campos.Find(c => c.NomeCampo.Equals("NÚMERO DA PARCELA")).PosInicio, campos.Find(c => c.NomeCampo.Equals("NÚMERO DA PARCELA")).PosFim));
                    transacao.IdProduto             = int.Parse(ExtrairInformacao(linha, campos.Find(c => c.NomeCampo.Equals("CÓDIGO DE PRODUTO")).PosInicio, campos.Find(c => c.NomeCampo.Equals("CÓDIGO DE PRODUTO")).PosFim));
                    break;

                case "2":
                    string tipoOperacao = ExtrairInformacao(linha, campos.Find(c => c.NomeCampo.Equals("TIPO DE OPERAÇÃO")).PosInicio, campos.Find(c => c.NomeCampo.Equals("TIPO DE OPERAÇÃO")).PosFim);
                    transacao.IdTipoOperacao    = tipoOperacao.Trim().Equals(string.Empty) ? 0 : int.Parse(tipoOperacao);
                    transacao.FlagOriginal      = ExtrairInformacao(linha, campos.Find(c => c.NomeCampo.Equals("DATA DE MOVIMENTO DA TRANSAÇÃO ORIGINAL")).PosInicio, campos.Find(c => c.NomeCampo.Equals("DATA DE MOVIMENTO DA TRANSAÇÃO ORIGINAL")).PosFim).Equals("00000000");
                    transacao.QtdDiasLiquidacao = ExtrairInformacao(linha, campos.Find(c => c.NomeCampo.Equals("QUANTIDADE DE DIAS PARA LIQUIDAÇÃO FINANCEIRA DA TRANSAÇÃO")).PosInicio, campos.Find(c => c.NomeCampo.Equals("QUANTIDADE DE DIAS PARA LIQUIDAÇÃO FINANCEIRA DA TRANSAÇÃO")).PosFim);
                    transacao.ValorIntercambio  = Decimal.Parse(StringUtil.StringToMoney(ExtrairInformacao(linha, campos.Find(c => c.NomeCampo.Equals("VALOR DO INTERCÂMBIO")).PosInicio, campos.Find(c => c.NomeCampo.Equals("VALOR DO INTERCÂMBIO")).PosFim)));
                    break;

                default:
                    break;
                }
            }
            else
            {
                switch (tipoTransacao)
                {
                case Constantes.TE10:
                {
                    switch (TipoRegistroTransacao(linha))
                    {
                    case "0":
                        transacao.Cartao            = ExtrairInformacao(linha, campos.Find(c => c.NomeCampo.Equals("NÚMERO DO CARTÃO")).PosInicio, campos.Find(c => c.NomeCampo.Equals("NÚMERO DO CARTÃO")).PosFim);
                        transacao.DataTransacao     = LAB5Utils.DataUtils.RetornaData(ExtrairInformacao(linha, campos.Find(c => c.NomeCampo.Equals("DATA DE ENVIO")).PosInicio, campos.Find(c => c.NomeCampo.Equals("DATA DE ENVIO")).PosFim));
                        transacao.Valor             = Decimal.Parse(StringUtil.StringToMoney(ExtrairInformacao(linha, campos.Find(c => c.NomeCampo.Equals("VALOR DESTINO")).PosInicio, campos.Find(c => c.NomeCampo.Equals("VALOR DESTINO")).PosFim)));
                        transacao.CodigoMoeda       = Int16.Parse(ExtrairInformacao(linha, campos.Find(c => c.NomeCampo.Equals("MOEDA DESTINO")).PosInicio, campos.Find(c => c.NomeCampo.Equals("MOEDA DESTINO")).PosFim));
                        transacao.ValorOrigem       = Decimal.Parse(StringUtil.StringToMoney(ExtrairInformacao(linha, campos.Find(c => c.NomeCampo.Equals("VALOR ORIGEM")).PosInicio, campos.Find(c => c.NomeCampo.Equals("VALOR ORIGEM")).PosFim)));
                        transacao.CodigoMoedaOrigem = Int16.Parse(ExtrairInformacao(linha, campos.Find(c => c.NomeCampo.Equals("MOEDA ORIGEM")).PosInicio, campos.Find(c => c.NomeCampo.Equals("MOEDA ORIGEM")).PosFim));
                        transacao.CicloApresentacao = int.Parse(ExtrairInformacao(linha, campos.Find(c => c.NomeCampo.Equals("IDENTIFICAÇÃO DO TIPO DE TRANSAÇÃO")).PosInicio, campos.Find(c => c.NomeCampo.Equals("IDENTIFICAÇÃO DO TIPO DE TRANSAÇÃO")).PosFim));
                        break;

                    case "2":
                        transacao.DataProcessamento = LAB5Utils.DataUtils.RetornaData(ExtrairInformacao(linha, campos.Find(c => c.NomeCampo.Equals("DATA DE PROCESSAMENTO")).PosInicio, campos.Find(c => c.NomeCampo.Equals("DATA DE PROCESSAMENTO")).PosFim));
                        break;
                    }

                    break;
                }

                case Constantes.TE20:
                {
                    switch (TipoRegistroTransacao(linha))
                    {
                    case "0":
                        transacao.Cartao            = ExtrairInformacao(linha, campos.Find(c => c.NomeCampo.Equals("NÚMERO DO CARTÃO")).PosInicio, campos.Find(c => c.NomeCampo.Equals("NÚMERO DO CARTÃO")).PosFim);
                        transacao.DataTransacao     = LAB5Utils.DataUtils.RetornaData(ExtrairInformacao(linha, campos.Find(c => c.NomeCampo.Equals("DATA DE ENVIO")).PosInicio, campos.Find(c => c.NomeCampo.Equals("DATA DE ENVIO")).PosFim));
                        transacao.Valor             = Decimal.Parse(StringUtil.StringToMoney(ExtrairInformacao(linha, campos.Find(c => c.NomeCampo.Equals("VALOR DESTINO")).PosInicio, campos.Find(c => c.NomeCampo.Equals("VALOR DESTINO")).PosFim)));
                        transacao.CodigoMoeda       = Int16.Parse(ExtrairInformacao(linha, campos.Find(c => c.NomeCampo.Equals("MOEDA DESTINO")).PosInicio, campos.Find(c => c.NomeCampo.Equals("MOEDA DESTINO")).PosFim));
                        transacao.ValorOrigem       = Decimal.Parse(StringUtil.StringToMoney(ExtrairInformacao(linha, campos.Find(c => c.NomeCampo.Equals("VALOR ORIGEM")).PosInicio, campos.Find(c => c.NomeCampo.Equals("VALOR ORIGEM")).PosFim)));
                        transacao.CodigoMoedaOrigem = Int16.Parse(ExtrairInformacao(linha, campos.Find(c => c.NomeCampo.Equals("MOEDA ORIGEM")).PosInicio, campos.Find(c => c.NomeCampo.Equals("MOEDA ORIGEM")).PosFim));
                        transacao.CicloApresentacao = int.Parse(ExtrairInformacao(linha, campos.Find(c => c.NomeCampo.Equals("IDENTIFICAÇÃO DO TIPO DE TRANSAÇÃO")).PosInicio, campos.Find(c => c.NomeCampo.Equals("IDENTIFICAÇÃO DO TIPO DE TRANSAÇÃO")).PosFim));
                        break;

                    case "2":
                        transacao.DataProcessamento = LAB5Utils.DataUtils.RetornaData(ExtrairInformacao(linha, campos.Find(c => c.NomeCampo.Equals("DATA DE PROCESSAMENTO")).PosInicio, campos.Find(c => c.NomeCampo.Equals("DATA DE PROCESSAMENTO")).PosFim));
                        break;
                    }
                    break;
                }

                case Constantes.TE40:
                {
                    switch (TipoRegistroTransacao(linha))
                    {
                    case "0":
                        transacao.Cartao = ExtrairInformacao(linha, campos.Find(c => c.NomeCampo.Equals("NÚMERO DO CARTÃO")).PosInicio, campos.Find(c => c.NomeCampo.Equals("NÚMERO DO CARTÃO")).PosFim);
                        transacao.AcquireReferenceNumber = ExtrairInformacao(linha, campos.Find(c => c.NomeCampo.Equals("NÚMERO DE REFERÊNCIA DA TRANSAÇÃO")).PosInicio, campos.Find(c => c.NomeCampo.Equals("NÚMERO DE REFERÊNCIA DA TRANSAÇÃO")).PosFim);
                        transacao.DataTransacao          = LAB5Utils.DataUtils.RetornaData(ExtrairInformacao(linha, campos.Find(c => c.NomeCampo.Equals("DATA DA VENDA")).PosInicio, campos.Find(c => c.NomeCampo.Equals("DATA DA VENDA")).PosFim));
                        transacao.NomeEstabelecimento    = ExtrairInformacao(linha, campos.Find(c => c.NomeCampo.Equals("NOME DO EC")).PosInicio, campos.Find(c => c.NomeCampo.Equals("NOME DO EC")).PosFim);
                        transacao.CodigoMCC         = Int16.Parse(ExtrairInformacao(linha, campos.Find(c => c.NomeCampo.Equals("CÓDIGO DO RAMO DE ATIVIDADE DO EC")).PosInicio, campos.Find(c => c.NomeCampo.Equals("CÓDIGO DO RAMO DE ATIVIDADE DO EC")).PosFim));
                        transacao.Valor             = Decimal.Parse(StringUtil.StringToMoney(ExtrairInformacao(linha, campos.Find(c => c.NomeCampo.Equals("VALOR DA FRAUDE")).PosInicio, campos.Find(c => c.NomeCampo.Equals("VALOR DA FRAUDE")).PosFim)));
                        transacao.CodigoMoeda       = Int16.Parse(ExtrairInformacao(linha, campos.Find(c => c.NomeCampo.Equals("CÓDIGO DE MOEDA DA TRANSAÇÃO FRAUDULENTA")).PosInicio, campos.Find(c => c.NomeCampo.Equals("CÓDIGO DE MOEDA DA TRANSAÇÃO FRAUDULENTA")).PosFim));
                        transacao.DataProcessamento = LAB5Utils.DataUtils.RetornaData(ExtrairInformacao(linha, campos.Find(c => c.NomeCampo.Equals("DATA DE NOTIFICAÇÃO DA FRAUDE")).PosInicio, campos.Find(c => c.NomeCampo.Equals("DATA DE NOTIFICAÇÃO DA FRAUDE")).PosFim));
                        transacao.CicloApresentacao = int.Parse(ExtrairInformacao(linha, campos.Find(c => c.NomeCampo.Equals("TIPO DE FRAUDE")).PosInicio, campos.Find(c => c.NomeCampo.Equals("TIPO DE FRAUDE")).PosFim));
                        string tipoLiquidacao = ExtrairInformacao(linha, campos.Find(c => c.NomeCampo.Equals("INDICADOR DE LIQUIDAÇÃO")).PosInicio, campos.Find(c => c.NomeCampo.Equals("INDICADOR DE LIQUIDAÇÃO")).PosFim);
                        transacao.FlagTransacaoInternacional = tipoLiquidacao == "0";
                        transacao.IndicadorMeio         = ExtrairInformacao(linha, campos.Find(c => c.NomeCampo.Equals("INDICADOR DE TRANSAÇÃO POR CORRESPONDÊNCIA/TELEFONE")).PosInicio, campos.Find(c => c.NomeCampo.Equals("INDICADOR DE TRANSAÇÃO POR CORRESPONDÊNCIA/TELEFONE")).PosFim);
                        transacao.NumeroEstabelecimento = ExtrairInformacao(linha, campos.Find(c => c.NomeCampo.Equals("NÚMERO DO EC")).PosInicio, campos.Find(c => c.NomeCampo.Equals("NÚMERO DO EC")).PosFim);
                        break;

                    case "2":
                        transacao.NSUOrigem = ExtrairInformacao(linha, campos.Find(c => c.NomeCampo.Equals("NÚMERO LÓGICO DO EQUIPAMENTO")).PosInicio, campos.Find(c => c.NomeCampo.Equals("NÚMERO LÓGICO DO EQUIPAMENTO")).PosFim);
                        break;
                    }
                    break;
                }
                }
            }



            campos = null;
        }
示例#11
0
 public ValidaArquivo(ref TransacaoElo transacao)
 {
     this.transacao = transacao;
 }