/// <summary> /// Executa a chamada do callback para mensagens CBLC /// </summary> /// <param name="cblc"></param> private void repassaEventoCBLC(EventoCBLC cblc) { switch (cblc.Cabecalho) { case ParserCBLCMessage.TIPO_MSG_AN: { CBLCConfirmacaoNegocioMegaBolsaInfo info = (CBLCConfirmacaoNegocioMegaBolsaInfo)cblc.Info; subscriberChannel.OnCBLC_ConfirmacaoNegocioMegabolsa(info); } break; case ParserCBLCMessage.TIPO_MSG_ANF: { CBLCConfirmacaoNegocioBovespaFixInfo fixinfo = (CBLCConfirmacaoNegocioBovespaFixInfo)cblc.Info; subscriberChannel.OnCBLC_ConfirmacaoNegocioBovespaFIX(fixinfo); } break; default: throw new Exception("repassaEventoCBLC() Error: Tipo de mensagem invalida: " + cblc.Cabecalho); } }
/// <summary> /// Confirmacao Negocio Megabolsa /// </summary> /// <param name="evento"></param> private void _parseAN(EventoSTM evento) { try { int offset = 0; CBLCConfirmacaoNegocioMegaBolsaInfo infoan = new CBLCConfirmacaoNegocioMegaBolsaInfo(); infoan.Cabecalho = evento.Cabecalho; infoan.NaturezaOperacao = evento.Corpo.Substring(offset, CBLCConfirmacaoNegocioMegaBolsaInfo.FIELD001_TAM_NATUREZA_OPERACAO); offset += CBLCConfirmacaoNegocioMegaBolsaInfo.FIELD001_TAM_NATUREZA_OPERACAO; if (!infoan.NaturezaOperacao.Equals("60") && !infoan.NaturezaOperacao.Equals("61") && !infoan.NaturezaOperacao.Equals("64") && !infoan.NaturezaOperacao.Equals("65")) { logger.Info("Ignorando Msg [" + evento.Corpo + "]"); return; } infoan.CodigoMontagem = evento.Corpo.Substring(offset, CBLCConfirmacaoNegocioMegaBolsaInfo.FIELD002_TAM_CODIGO_MONTAGEM); offset += CBLCConfirmacaoNegocioMegaBolsaInfo.FIELD002_TAM_CODIGO_MONTAGEM; infoan.CodigoNegociacao = evento.Corpo.Substring(offset, CBLCConfirmacaoNegocioMegaBolsaInfo.FIELD003_TAM_CODIGO_NEGOCIACAO).Trim(); offset += CBLCConfirmacaoNegocioMegaBolsaInfo.FIELD003_TAM_CODIGO_NEGOCIACAO; infoan.CodigoISIN = evento.Corpo.Substring(offset, CBLCConfirmacaoNegocioMegaBolsaInfo.FIELD004_TAM_CODIGO_ISIN).Trim(); offset += CBLCConfirmacaoNegocioMegaBolsaInfo.FIELD004_TAM_CODIGO_ISIN; infoan.NumeroDistribuicaoPapel = evento.Corpo.Substring(offset, CBLCConfirmacaoNegocioMegaBolsaInfo.FIELD005_TAM_NUMERO_DISTRIBUICAO_PAPEL); offset += CBLCConfirmacaoNegocioMegaBolsaInfo.FIELD005_TAM_NUMERO_DISTRIBUICAO_PAPEL; infoan.NomeResumidoEmpresa = evento.Corpo.Substring(offset, CBLCConfirmacaoNegocioMegaBolsaInfo.FIELD006_TAM_NOME_RESUMIDO_EMPRESA).Trim(); offset += CBLCConfirmacaoNegocioMegaBolsaInfo.FIELD006_TAM_NOME_RESUMIDO_EMPRESA; infoan.EspecificacaoPapel = evento.Corpo.Substring(offset, CBLCConfirmacaoNegocioMegaBolsaInfo.FIELD007_TAM_ESPEC_PAPEL).Trim(); offset += CBLCConfirmacaoNegocioMegaBolsaInfo.FIELD007_TAM_ESPEC_PAPEL; infoan.FatorCotacao = evento.Corpo.Substring(offset, CBLCConfirmacaoNegocioMegaBolsaInfo.FIELD008_TAM_FATOR_COTACAO); offset += CBLCConfirmacaoNegocioMegaBolsaInfo.FIELD008_TAM_FATOR_COTACAO; infoan.CodigoMercado = evento.Corpo.Substring(offset, CBLCConfirmacaoNegocioMegaBolsaInfo.FIELD009_TAM_CODIGO_MERCADO); offset += CBLCConfirmacaoNegocioMegaBolsaInfo.FIELD009_TAM_CODIGO_MERCADO; offset += CBLCConfirmacaoNegocioMegaBolsaInfo.FIELD010_TAM_RESERVADO1; offset += CBLCConfirmacaoNegocioMegaBolsaInfo.FIELD011_TAM_RESERVADO2; string preco = evento.Corpo.Substring(offset, CBLCConfirmacaoNegocioMegaBolsaInfo.FIELD012_TAM_PRECO_EXERCICIO_OPCOES); preco = preco.Insert(11, "."); infoan.PrecoExercicioOpcoes = Convert.ToDecimal(preco, CultureInfo.InvariantCulture); offset += CBLCConfirmacaoNegocioMegaBolsaInfo.FIELD012_TAM_PRECO_EXERCICIO_OPCOES; infoan.CodigoNegociacaoPapelObjeto = evento.Corpo.Substring(offset, CBLCConfirmacaoNegocioMegaBolsaInfo.FIELD013_TAM_CODIGO_NEGOCIACAO_PAPEL_OBJETO).Trim(); offset += CBLCConfirmacaoNegocioMegaBolsaInfo.FIELD013_TAM_CODIGO_NEGOCIACAO_PAPEL_OBJETO; infoan.NumeroSerie = evento.Corpo.Substring(offset, CBLCConfirmacaoNegocioMegaBolsaInfo.FIELD014_TAM_NUMERO_SERIE); offset += CBLCConfirmacaoNegocioMegaBolsaInfo.FIELD014_TAM_NUMERO_SERIE; infoan.CodigoBDI = evento.Corpo.Substring(offset, CBLCConfirmacaoNegocioMegaBolsaInfo.FIELD015_TAM_CODIGO_BDI); offset += CBLCConfirmacaoNegocioMegaBolsaInfo.FIELD015_TAM_CODIGO_BDI; offset += CBLCConfirmacaoNegocioMegaBolsaInfo.FIELD016_TAM_RESERVADO3; infoan.NumeroNegocio = evento.Corpo.Substring(offset, CBLCConfirmacaoNegocioMegaBolsaInfo.FIELD017_TAM_NUMERO_NEGOCIO); offset += CBLCConfirmacaoNegocioMegaBolsaInfo.FIELD017_TAM_NUMERO_NEGOCIO; infoan.HorarioFato = evento.Corpo.Substring(offset, CBLCConfirmacaoNegocioMegaBolsaInfo.FIELD018_TAM_HORARIO_FATO); offset += CBLCConfirmacaoNegocioMegaBolsaInfo.FIELD018_TAM_HORARIO_FATO; infoan.TipoTransacaoNegocio = evento.Corpo.Substring(offset, CBLCConfirmacaoNegocioMegaBolsaInfo.FIELD019_TAM_TIPO_TRANSACAO_NEGOCIO); offset += CBLCConfirmacaoNegocioMegaBolsaInfo.FIELD019_TAM_TIPO_TRANSACAO_NEGOCIO; preco = evento.Corpo.Substring(offset, CBLCConfirmacaoNegocioMegaBolsaInfo.FIELD020_TAM_PRECO_NEGOCIO); preco = preco.Insert(11, "."); infoan.PrecoNegocio = Convert.ToDecimal(preco, CultureInfo.InvariantCulture); offset += CBLCConfirmacaoNegocioMegaBolsaInfo.FIELD020_TAM_PRECO_NEGOCIO; infoan.QuantidadeNegocio = Convert.ToInt64(evento.Corpo.Substring(offset, CBLCConfirmacaoNegocioMegaBolsaInfo.FIELD021_TAM_QUANTIDADE_NEGOCIO)); offset += CBLCConfirmacaoNegocioMegaBolsaInfo.FIELD021_TAM_QUANTIDADE_NEGOCIO; preco = evento.Corpo.Substring(offset, CBLCConfirmacaoNegocioMegaBolsaInfo.FIELD022_TAM_PRECO_MEDIO_PAPEL); preco = preco.Insert(11, "."); infoan.PrecoMedioPapel = Convert.ToDecimal(preco, CultureInfo.InvariantCulture); offset += CBLCConfirmacaoNegocioMegaBolsaInfo.FIELD022_TAM_PRECO_MEDIO_PAPEL; infoan.CodigoCliente = evento.Corpo.Substring(offset, CBLCConfirmacaoNegocioMegaBolsaInfo.FIELD023_TAM_CODIGO_CLIENTE); offset += CBLCConfirmacaoNegocioMegaBolsaInfo.FIELD023_TAM_CODIGO_CLIENTE; infoan.DVCliente = evento.Corpo.Substring(offset, CBLCConfirmacaoNegocioMegaBolsaInfo.FIELD024_TAM_DIGITO_CLIENTE); offset += CBLCConfirmacaoNegocioMegaBolsaInfo.FIELD024_TAM_DIGITO_CLIENTE; infoan.PrazoContradosTermo = evento.Corpo.Substring(offset, CBLCConfirmacaoNegocioMegaBolsaInfo.FIELD025_TAM_PRAZO_CONTRATOS_TERMO); offset += CBLCConfirmacaoNegocioMegaBolsaInfo.FIELD025_TAM_PRAZO_CONTRATOS_TERMO; string dtvc = evento.Corpo.Substring(offset, CBLCConfirmacaoNegocioMegaBolsaInfo.FIELD026_TAM_DATA_VENCIMENTO); if (dtvc.Equals("9999-12-31")) { infoan.DataVencimento = DateTime.MaxValue; } else { infoan.DataVencimento = DateTime.ParseExact(dtvc, "yyyy-MM-dd", CultureInfo.InvariantCulture); } offset += CBLCConfirmacaoNegocioMegaBolsaInfo.FIELD026_TAM_DATA_VENCIMENTO; infoan.TipoPosicaoCliente = evento.Corpo.Substring(offset, CBLCConfirmacaoNegocioMegaBolsaInfo.FIELD027_TAM_TIPO_POSICAO_CLIENTE); offset += CBLCConfirmacaoNegocioMegaBolsaInfo.FIELD027_TAM_TIPO_POSICAO_CLIENTE; infoan.TipoLiquidacaoNegocio = evento.Corpo.Substring(offset, CBLCConfirmacaoNegocioMegaBolsaInfo.FIELD028_TAM_TIPO_LIQUIDACAO_NEGOCIO); offset += CBLCConfirmacaoNegocioMegaBolsaInfo.FIELD028_TAM_TIPO_LIQUIDACAO_NEGOCIO; infoan.IndicadorEstrategiaOpcoes = evento.Corpo.Substring(offset, CBLCConfirmacaoNegocioMegaBolsaInfo.FIELD029_TAM_INDICADOR_ESTRATEGIA_OPCOES); offset += CBLCConfirmacaoNegocioMegaBolsaInfo.FIELD029_TAM_INDICADOR_ESTRATEGIA_OPCOES; preco = evento.Corpo.Substring(offset, CBLCConfirmacaoNegocioMegaBolsaInfo.FIELD030_TAM_PRECO_ULTIMO_NEGOCIO_PAPEL); preco = preco.Insert(11, "."); infoan.PrecoUltimoNegocioPapel = Convert.ToDecimal(preco, CultureInfo.InvariantCulture); offset += CBLCConfirmacaoNegocioMegaBolsaInfo.FIELD030_TAM_PRECO_ULTIMO_NEGOCIO_PAPEL; infoan.QuantidadeNegociadaTotalPapel = Convert.ToInt64(evento.Corpo.Substring(offset, CBLCConfirmacaoNegocioMegaBolsaInfo.FIELD031_TAM_QTDE_TOTAL_NEGOCIADA_PAPEL)); offset += CBLCConfirmacaoNegocioMegaBolsaInfo.FIELD031_TAM_QTDE_TOTAL_NEGOCIADA_PAPEL; infoan.VolumeNegociadoTotalPapel = Convert.ToInt64(evento.Corpo.Substring(offset, CBLCConfirmacaoNegocioMegaBolsaInfo.FIELD032_TAM_VOLUME_TOTAL_NEGOCIADO_PAPEL)); offset += CBLCConfirmacaoNegocioMegaBolsaInfo.FIELD032_TAM_VOLUME_TOTAL_NEGOCIADO_PAPEL; offset += CBLCConfirmacaoNegocioMegaBolsaInfo.FIELD033_TAM_RESERVADO4; infoan.IdentificacaoCorretoraDestino = evento.Corpo.Substring(offset, CBLCConfirmacaoNegocioMegaBolsaInfo.FIELD034_TAM_IDENTIFICACAO_CORRETORA_DESTINO); offset += CBLCConfirmacaoNegocioMegaBolsaInfo.FIELD034_TAM_IDENTIFICACAO_CORRETORA_DESTINO; infoan.NumeroSequencialRegistro = evento.Corpo.Substring(offset, CBLCConfirmacaoNegocioMegaBolsaInfo.FIELD035_TAM_NUMERO_SEQUENCIAL_REGISTRO); offset += CBLCConfirmacaoNegocioMegaBolsaInfo.FIELD035_TAM_NUMERO_SEQUENCIAL_REGISTRO; infoan.IdentificacaoCorretoraContraparte = evento.Corpo.Substring(offset, CBLCConfirmacaoNegocioMegaBolsaInfo.FIELD036_TAM_IDENTIFICACAO_CORRETORA_CONTRAPARTE); offset += CBLCConfirmacaoNegocioMegaBolsaInfo.FIELD036_TAM_IDENTIFICACAO_CORRETORA_CONTRAPARTE; dtvc = evento.Corpo.Substring(offset, CBLCConfirmacaoNegocioMegaBolsaInfo.FIELD037_TAM_DATA_MOVIMENTO); infoan.DataMovimento = DateTime.ParseExact(dtvc, "yyyy-MM-dd", CultureInfo.InvariantCulture); offset += CBLCConfirmacaoNegocioMegaBolsaInfo.FIELD037_TAM_DATA_MOVIMENTO; infoan.CodigoEmpresaEmissoraPapel = evento.Corpo.Substring(offset, CBLCConfirmacaoNegocioMegaBolsaInfo.FIELD038_TAM_CODIGO_EMPRESA_EMISSORA); offset += CBLCConfirmacaoNegocioMegaBolsaInfo.FIELD038_TAM_CODIGO_EMPRESA_EMISSORA; infoan.TipoTituloPapel = evento.Corpo.Substring(offset, CBLCConfirmacaoNegocioMegaBolsaInfo.FIELD039_TAM_TIPO_TITULO_PAPEL); offset += CBLCConfirmacaoNegocioMegaBolsaInfo.FIELD039_TAM_TIPO_TITULO_PAPEL; infoan.EspecieTituloPapel = evento.Corpo.Substring(offset, CBLCConfirmacaoNegocioMegaBolsaInfo.FIELD040_TAM_ESPECIA_TITULO_PAPEL); offset += CBLCConfirmacaoNegocioMegaBolsaInfo.FIELD040_TAM_ESPECIA_TITULO_PAPEL; infoan.IndicadorOrigemNegocio = evento.Corpo.Substring(offset, CBLCConfirmacaoNegocioMegaBolsaInfo.FIELD041_TAM_INDICADOR_ORIGEM_NEGOCIO); offset += CBLCConfirmacaoNegocioMegaBolsaInfo.FIELD041_TAM_INDICADOR_ORIGEM_NEGOCIO; infoan.CodigoClienteVendedor = evento.Corpo.Substring(offset, CBLCConfirmacaoNegocioMegaBolsaInfo.FIELD042_TAM_CODIGO_CLIENTE_VENDEDOR).Trim(); offset += CBLCConfirmacaoNegocioMegaBolsaInfo.FIELD042_TAM_CODIGO_CLIENTE_VENDEDOR; infoan.CodigoClienteComprador = evento.Corpo.Substring(offset, CBLCConfirmacaoNegocioMegaBolsaInfo.FIELD043_TAM_CODIGO_CLIENTE_COMPRADOR).Trim(); offset += CBLCConfirmacaoNegocioMegaBolsaInfo.FIELD043_TAM_CODIGO_CLIENTE_COMPRADOR; infoan.CodigoSistema = evento.Corpo.Substring(offset, CBLCConfirmacaoNegocioMegaBolsaInfo.FIELD044_TAM_CODIGO_SISTEMA); offset += CBLCConfirmacaoNegocioMegaBolsaInfo.FIELD044_TAM_CODIGO_SISTEMA; infoan.FormaLiquidacao = evento.Corpo.Substring(offset, CBLCConfirmacaoNegocioMegaBolsaInfo.FIELD045_TAM_FORMA_LIQUIDACAO); offset += CBLCConfirmacaoNegocioMegaBolsaInfo.FIELD045_TAM_FORMA_LIQUIDACAO; infoan.PrazoLiquidacao = evento.Corpo.Substring(offset, CBLCConfirmacaoNegocioMegaBolsaInfo.FIELD046_TAM_PRAZO_LIQUIDACAO); offset += CBLCConfirmacaoNegocioMegaBolsaInfo.FIELD046_TAM_PRAZO_LIQUIDACAO; offset += CBLCConfirmacaoNegocioMegaBolsaInfo.FIELD047_TAM_RESERVADO5; infoan.NumeroOfertaCompraMega = evento.Corpo.Substring(offset, CBLCConfirmacaoNegocioMegaBolsaInfo.FIELD048_TAM_NUMERO_OFERTA_COMPRA_MEGA); offset += CBLCConfirmacaoNegocioMegaBolsaInfo.FIELD048_TAM_NUMERO_OFERTA_COMPRA_MEGA; infoan.NumeroOfertaVendaMega = evento.Corpo.Substring(offset, CBLCConfirmacaoNegocioMegaBolsaInfo.FIELD049_TAM_NUMERO_OFERTA_VENDA_MEGA); offset += CBLCConfirmacaoNegocioMegaBolsaInfo.FIELD049_TAM_NUMERO_OFERTA_VENDA_MEGA; infoan.TipoTermo = evento.Corpo.Substring(offset, CBLCConfirmacaoNegocioMegaBolsaInfo.FIELD050_TAM_TIPO_TERMO); offset += CBLCConfirmacaoNegocioMegaBolsaInfo.FIELD050_TAM_TIPO_TERMO; infoan.OperadorComprador = evento.Corpo.Substring(offset, CBLCConfirmacaoNegocioMegaBolsaInfo.FIELD051_TAM_OPERADOR_COMPRADOR); offset += CBLCConfirmacaoNegocioMegaBolsaInfo.FIELD051_TAM_OPERADOR_COMPRADOR; infoan.OperadorVendedor = evento.Corpo.Substring(offset, CBLCConfirmacaoNegocioMegaBolsaInfo.FIELD052_TAM_OPERADOR_VENDEDOR); offset += CBLCConfirmacaoNegocioMegaBolsaInfo.FIELD052_TAM_OPERADOR_VENDEDOR; infoan.CodigoOfertaEstrategia1 = evento.Corpo.Substring(offset, CBLCConfirmacaoNegocioMegaBolsaInfo.FIELD053_TAM_CODIGO_OFERTA_ESTRATEG1); offset += CBLCConfirmacaoNegocioMegaBolsaInfo.FIELD053_TAM_CODIGO_OFERTA_ESTRATEG1; infoan.CodigoOfertaEstrategia2 = evento.Corpo.Substring(offset, CBLCConfirmacaoNegocioMegaBolsaInfo.FIELD054_TAM_CODIGO_OFERTA_ESTRATEG2); offset += CBLCConfirmacaoNegocioMegaBolsaInfo.FIELD054_TAM_CODIGO_OFERTA_ESTRATEG2; offset += CBLCConfirmacaoNegocioMegaBolsaInfo.FIELD055_TAM_RESERVADO6; EventoCBLC newevent = new EventoCBLC(TIPO_MSG_AN, infoan, evento.MsgID); ServicoConectorSTM.epService.EPRuntime.SendEvent(newevent); } catch (Exception ex) { logger.Error("Erro _parseAN()" + ex.Message, ex); logger.Error("Msg: [" + evento.Corpo + "]"); } }
public void OnCBLC_ConfirmacaoNegocioMegabolsa(Gradual.OMS.ConectorSTM.Lib.Mensagens.CBLCConfirmacaoNegocioMegaBolsaInfo info) { CBLCConfirmacaoNegocioMegaBolsaInfo f**k = info; }