/// <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);
            }
        }
Exemple #2
0
        /// <summary>
        ///  Notificacao de cancelamento de negocio
        /// </summary>
        /// <param name="evento"></param>
        private void _parse103(EventoSTM evento)
        {
            int offset = 0;
            MEGA0103CriacaoNegocioInfo info103 = new MEGA0103CriacaoNegocioInfo();

            info103.FunctionCode = evento.Cabecalho;

            info103.InternalReference = evento.Corpo.Substring(offset, MEGA0103CriacaoNegocioInfo.FIELD001_TAM_INTERNAL_REFERENCE);
            offset += MEGA0103CriacaoNegocioInfo.FIELD001_TAM_INTERNAL_REFERENCE;
            offset += MEGA0103CriacaoNegocioInfo.FIELD002_TAM_FUNCTION_CODE;

            string dthr = evento.Corpo.Substring(offset, MEGA0103CriacaoNegocioInfo.FIELD003_TAM_DSEABS);

            info103.DataNegocio = DateTime.ParseExact(dthr, "yyyyMMdd", CultureInfo.InvariantCulture);
            offset += MEGA0103CriacaoNegocioInfo.FIELD003_TAM_DSEABS;

            info103.Papel = evento.Corpo.Substring(offset, MEGA0103CriacaoNegocioInfo.FIELD004_TAM_CVALISIN).Trim();
            offset       += MEGA0103CriacaoNegocioInfo.FIELD004_TAM_CVALISIN;

            info103.IndicadorFormato = evento.Corpo.Substring(offset, MEGA0103CriacaoNegocioInfo.FIELD005_TAM_INDICADOR_FORMATO);
            offset += MEGA0103CriacaoNegocioInfo.FIELD005_TAM_INDICADOR_FORMATO;

            string preco = evento.Corpo.Substring(offset, MEGA0103CriacaoNegocioInfo.FIELD006_TAM_PRECO);

            preco         = STMUtilities.saidaFormatada(info103.IndicadorFormato[0], preco, false, true, false, preco.Length);
            info103.Preco = Convert.ToDecimal(preco, STMUtilities.ciPtBR);
            offset       += MEGA0103CriacaoNegocioInfo.FIELD006_TAM_PRECO;

            info103.QuantidadeNegocio = evento.Corpo.Substring(offset, MEGA0103CriacaoNegocioInfo.FIELD007_TAM_QTITTRAN);
            offset += MEGA0103CriacaoNegocioInfo.FIELD007_TAM_QTITTRAN;

            dthr = evento.Corpo.Substring(offset, MEGA0103CriacaoNegocioInfo.FIELD008_TAM_DHTRANBS);
            info103.DataHoraNegocio = DateTime.ParseExact(dthr, "yyyyMMddHHmmss", CultureInfo.InvariantCulture);
            offset += MEGA0103CriacaoNegocioInfo.FIELD008_TAM_DHTRANBS;

            info103.Side = evento.Corpo.Substring(offset, MEGA0103CriacaoNegocioInfo.FIELD009_TAM_ISENSOM);
            offset      += MEGA0103CriacaoNegocioInfo.FIELD009_TAM_ISENSOM;

            info103.CorretoraContraparte = evento.Corpo.Substring(offset, MEGA0103CriacaoNegocioInfo.FIELD010_TAM_CLDADFCIE);
            offset += MEGA0103CriacaoNegocioInfo.FIELD010_TAM_CLDADFCIE;

            info103.CodigoOrigemOferta = evento.Corpo.Substring(offset, MEGA0103CriacaoNegocioInfo.FIELD011_TAM_YOM);
            offset += MEGA0103CriacaoNegocioInfo.FIELD011_TAM_YOM;
            offset += MEGA0103CriacaoNegocioInfo.FIELD012_TAM_NMSGREPON;
            offset += MEGA0103CriacaoNegocioInfo.FIELD013_TAM_HMSGREPON;

            info103.NumeroNegocio = evento.Corpo.Substring(offset, MEGA0103CriacaoNegocioInfo.FIELD014_TAM_NTRAN);
            offset += MEGA0103CriacaoNegocioInfo.FIELD014_TAM_NTRAN;

            info103.TipoOrdemOrigem = evento.Corpo.Substring(offset, MEGA0103CriacaoNegocioInfo.FIELD015_TAM_IORGINFMAR);
            offset += MEGA0103CriacaoNegocioInfo.FIELD015_TAM_IORGINFMAR;

            info103.CodigoOperadorMega = evento.Corpo.Substring(offset, MEGA0103CriacaoNegocioInfo.FIELD016_TAM_CLDNGSAIOM);
            offset += MEGA0103CriacaoNegocioInfo.FIELD016_TAM_CLDNGSAIOM;
            offset += MEGA0103CriacaoNegocioInfo.FIELD017_TAM_YCPTEMBROM;

            info103.CodigoClienteMegabolsa = evento.Corpo.Substring(offset, MEGA0103CriacaoNegocioInfo.FIELD018_TAM_NCPTEMBROM);
            info103.CodigoCliente          = STMUtilities.RetornarNumeros(info103.CodigoClienteMegabolsa);
            offset += MEGA0103CriacaoNegocioInfo.FIELD018_TAM_NCPTEMBROM;
            offset += MEGA0103CriacaoNegocioInfo.FIELD019_TAM_CLDOMNG;

            dthr = evento.Corpo.Substring(offset, MEGA0103CriacaoNegocioInfo.FIELD020_TAM_DHSAIOMADF);
            info103.DataHoraRegistro = DateTime.ParseExact(dthr, "yyyyMMddHHmmss", CultureInfo.InvariantCulture);
            offset += MEGA0103CriacaoNegocioInfo.FIELD020_TAM_DHSAIOMADF;

            info103.QuantidadePatas = Convert.ToInt32(evento.Corpo.Substring(offset, MEGA0103CriacaoNegocioInfo.FIELD021_TAM_ZPRODCPSTRAN));
            offset += MEGA0103CriacaoNegocioInfo.FIELD021_TAM_ZPRODCPSTRAN;

            for (int i = 0; i < info103.QuantidadePatas; i++)
            {
                PataEstrategiaNegocioInfo pata = new PataEstrategiaNegocioInfo();

                pata.CodigoIdentificacao = evento.Corpo.Substring(offset, PataEstrategiaNegocioInfo.FIELD001_TAM_CISINPRODCPS);
                offset += PataEstrategiaNegocioInfo.FIELD001_TAM_CISINPRODCPS;

                pata.SinalCompraVenda = evento.Corpo.Substring(offset, PataEstrategiaNegocioInfo.FIELD002_TAM_CSIGNKMUPRODCPS);
                offset += PataEstrategiaNegocioInfo.FIELD002_TAM_CSIGNKMUPRODCPS;

                pata.ProporcaoPata = evento.Corpo.Substring(offset, PataEstrategiaNegocioInfo.FIELD003_TAM_KRAOCPSSTG);
                offset            += PataEstrategiaNegocioInfo.FIELD003_TAM_KRAOCPSSTG;

                pata.FormatIndicator = evento.Corpo.Substring(offset, PataEstrategiaNegocioInfo.FIELD004_TAM_FORMAT_INDICATOR);
                offset += PataEstrategiaNegocioInfo.FIELD004_TAM_FORMAT_INDICATOR;

                preco      = evento.Corpo.Substring(offset, PataEstrategiaNegocioInfo.FIELD005_TAM_DATA);
                preco      = STMUtilities.saidaFormatada(pata.FormatIndicator[0], preco, false, true, false, preco.Length);
                pata.Preco = Convert.ToDecimal(preco, STMUtilities.ciPtBR);
                offset    += PataEstrategiaNegocioInfo.FIELD005_TAM_DATA;

                pata.NumeroNegocio = evento.Corpo.Substring(offset, PataEstrategiaNegocioInfo.FIELD006_TAM_NTRANSCPRODCPS);
                offset            += PataEstrategiaNegocioInfo.FIELD006_TAM_NTRANSCPRODCPS;

                info103.Patas.Add(pata);
            }

            EventoMega newevent = new EventoMega(TIPO_MSG_0103, info103, evento.MsgID);

            ServicoConectorSTM.epService.EPRuntime.SendEvent(newevent);
        }
Exemple #3
0
 public void OnMega_CriacaoNegocio(Gradual.OMS.ConectorSTM.Lib.Mensagens.MEGA0103CriacaoNegocioInfo info)
 {
     MEGA0103CriacaoNegocioInfo xxxx = info;
 }