/// <summary> /// Notificacao de cancelamento de negocio /// </summary> /// <param name="evento"></param> private void _parse100(EventoSTM evento) { int offset = 0; MEGA0100NotificacaoCancelamentoNegocioInfo info100 = new MEGA0100NotificacaoCancelamentoNegocioInfo(); info100.FunctionCode = evento.Cabecalho; info100.InternalReference = evento.Corpo.Substring(offset, MEGA0100NotificacaoCancelamentoNegocioInfo.FIELD001_TAM_INTERNAL_REFERENCE); offset += MEGA0100NotificacaoCancelamentoNegocioInfo.FIELD001_TAM_INTERNAL_REFERENCE; offset += MEGA0100NotificacaoCancelamentoNegocioInfo.FIELD002_TAM_FUNCTION_CODE; string dthr = evento.Corpo.Substring(offset, MEGA0100NotificacaoCancelamentoNegocioInfo.FIELD003_TAM_DSEABSEVEN); info100.DataNegocio = DateTime.ParseExact(dthr, "yyyyMMdd", CultureInfo.InvariantCulture); offset += MEGA0100NotificacaoCancelamentoNegocioInfo.FIELD003_TAM_DSEABSEVEN; info100.Papel = evento.Corpo.Substring(offset, MEGA0100NotificacaoCancelamentoNegocioInfo.FIELD004_TAM_CVALISIN).Trim(); offset += MEGA0100NotificacaoCancelamentoNegocioInfo.FIELD004_TAM_CVALISIN; dthr = evento.Corpo.Substring(offset, MEGA0100NotificacaoCancelamentoNegocioInfo.FIELD005_TAM_DSAIOM); info100.DataRegistro = DateTime.ParseExact(dthr, "yyyyMMdd", CultureInfo.InvariantCulture); offset += MEGA0100NotificacaoCancelamentoNegocioInfo.FIELD005_TAM_DSAIOM; info100.SequencialOrdem = evento.Corpo.Substring(offset, MEGA0100NotificacaoCancelamentoNegocioInfo.FIELD006_TAM_NSEQOM); offset += MEGA0100NotificacaoCancelamentoNegocioInfo.FIELD006_TAM_NSEQOM; info100.IndicadorFormatoPreco = evento.Corpo.Substring(offset, MEGA0100NotificacaoCancelamentoNegocioInfo.FIELD007_TAM_IND_PRICE); offset += MEGA0100NotificacaoCancelamentoNegocioInfo.FIELD007_TAM_IND_PRICE; string preco = evento.Corpo.Substring(offset, MEGA0138OrdemEliminadaInfo.FIELD009_TAM_PRICE); preco = STMUtilities.saidaFormatada(info100.IndicadorFormatoPreco[0], preco, false, true, false, preco.Length); info100.Preco = Convert.ToDecimal(preco, STMUtilities.ciPtBR); offset += MEGA0100NotificacaoCancelamentoNegocioInfo.FIELD008_TAM_PRICE; info100.QuantidadeExecutadaNegocio = Convert.ToInt64(evento.Corpo.Substring(offset, MEGA0100NotificacaoCancelamentoNegocioInfo.FIELD009_TAM_QTITTRAN)); offset += MEGA0100NotificacaoCancelamentoNegocioInfo.FIELD009_TAM_QTITTRAN; info100.HoraExecucaoNegocio = evento.Corpo.Substring(offset, MEGA0100NotificacaoCancelamentoNegocioInfo.FIELD010_TAM_HTRAN); offset += MEGA0100NotificacaoCancelamentoNegocioInfo.FIELD010_TAM_HTRAN; offset += MEGA0100NotificacaoCancelamentoNegocioInfo.FIELD011_TAM_NMSGREPON; offset += MEGA0100NotificacaoCancelamentoNegocioInfo.FIELD012_TAM_HMSGREPON; info100.CorretoraContraparte = evento.Corpo.Substring(offset, MEGA0100NotificacaoCancelamentoNegocioInfo.FIELD013_TAM_CLDADFCIE); offset += MEGA0100NotificacaoCancelamentoNegocioInfo.FIELD013_TAM_CLDADFCIE; info100.NumeroNegocio = evento.Corpo.Substring(offset, MEGA0100NotificacaoCancelamentoNegocioInfo.FIELD014_TAM_NTRAN); offset += MEGA0100NotificacaoCancelamentoNegocioInfo.FIELD014_TAM_NTRAN; info100.Side = evento.Corpo.Substring(offset, MEGA0100NotificacaoCancelamentoNegocioInfo.FIELD015_TAM_ISENOM); offset += MEGA0100NotificacaoCancelamentoNegocioInfo.FIELD015_TAM_ISENOM; EventoMega newevent = new EventoMega(TIPO_MSG_0100, info100, evento.MsgID); ServicoConectorSTM.epService.EPRuntime.SendEvent(newevent); }
/// <summary> /// Executa a chamada do callback para as mensagems MegaBolsa /// </summary> /// <param name="mega"></param> private void repassaEventoMega(EventoMega mega) { switch (mega.Function) { case ParserMegaMessage.TIPO_MSG_0100: { MEGA0100NotificacaoCancelamentoNegocioInfo info = (MEGA0100NotificacaoCancelamentoNegocioInfo )mega.Info; subscriberChannel.OnMega_CancelamentoNegocio(info); } break; case ParserMegaMessage.TIPO_MSG_0103: { MEGA0103CriacaoNegocioInfo info = (MEGA0103CriacaoNegocioInfo)mega.Info; subscriberChannel.OnMega_CriacaoNegocio(info); } break; case ParserMegaMessage.TIPO_MSG_0105: { MEGA0105NotificacaoExecucaoInfo info = (MEGA0105NotificacaoExecucaoInfo)mega.Info; subscriberChannel.OnMega_NotificacaoExecucao(info); } break; case ParserMegaMessage.TIPO_MSG_0138: { MEGA0138OrdemEliminadaInfo info = (MEGA0138OrdemEliminadaInfo)mega.Info; subscriberChannel.OnMega_OrdemEliminada(info); } break; case ParserMegaMessage.TIPO_MSG_0172: { MEGA0172ConfirmacaoOrdemInfo info = (MEGA0172ConfirmacaoOrdemInfo)mega.Info; subscriberChannel.OnMega_ConfirmacaoOrdem(info); } break; default: throw new Exception("repassaEventoMega() Tipo de mensagem invalida: " + mega.Function); } }
public void OnMega_CancelamentoNegocio(Gradual.OMS.ConectorSTM.Lib.Mensagens.MEGA0100NotificacaoCancelamentoNegocioInfo info) { MEGA0100NotificacaoCancelamentoNegocioInfo xxxx = info; }