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); } }
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; } }
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]); } }
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); }
private void InserirBufferElo(TransacaoElo transacao, int idEmissor) { if (bufferElo.Count < Constantes.BUFFER_LIMIT) { bufferElo.Add(transacao); } else { PersistirBufferElo(idEmissor); bufferElo.Add(transacao); } }
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); } } }
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); }
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); }
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; } }
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; }
public ValidaArquivo(ref TransacaoElo transacao) { this.transacao = transacao; }