예제 #1
0
파일: Form1.cs 프로젝트: radtek/Gradual
        public void EventMds_OnMDSSRespostaSolicitacaoEvent(object sender, MDSEventArgs e)
        {
            try
            {
                RS_RespostaStop _RS_RespostaStop
                    = (RS_RespostaStop)(sender);

                int id_stopstart = int.Parse(_RS_RespostaStop.pStrIdStopStart);
                int id_status    = int.Parse(_RS_RespostaStop.pStrStatus);

                if (id_status == (int)RespostaOrdem.Rejeitado)  // Stop Rejeitado

                {
                    new AutomacaoOrdensDados().AtualizaOrdemStop
                    (
                        int.Parse(_RS_RespostaStop.pStrIdStopStart),
                        (int)OrdemStopStatus.RejeitadoMDS
                    );

                    logger.Info(string.Format("{0}{1}", "\r\n " + int.Parse(_RS_RespostaStop.pStrIdStopStart).ToString(), " Stop rejeitado pelo MDS"));

                    txtHistorico.Text +=
                        string.Format("{0}{1}", "\r\n " + int.Parse(_RS_RespostaStop.pStrIdStopStart).ToString(), " Stop rejeitado pelo MDS");
                }
                else if (id_status == (int)RespostaOrdem.Aceito) // Stop Aceito
                {
                    // Atualiza status da ordem para aceito.
                    new AutomacaoOrdensDados().AtualizaOrdemStop
                    (
                        int.Parse(_RS_RespostaStop.pStrIdStopStart),
                        (int)OrdemStopStatus.AceitoMDS
                    );

                    logger.Info(string.Format("{0}{1}", "\r\n " + int.Parse(_RS_RespostaStop.pStrIdStopStart).ToString(), " Stop aceito pelo MDS"));

                    txtHistorico.Text +=
                        string.Format("{0}{1}", "\r\n " + int.Parse(_RS_RespostaStop.pStrIdStopStart).ToString(), " Stop aceito pelo MDS");
                }
            }
            catch (Exception ex)
            {
                logger.Error(string.Format("{0}{1}", "EventMds_OnMDSSRespostaAutenticacaoEvent: ", ex.Message));
                throw new Exception(string.Format("{0}{1}", "EventMds_OnMDSSRespostaAutenticacaoEvent: ", ex.Message));
            }
        }
예제 #2
0
파일: Form1.cs 프로젝트: radtek/Gradual
        /// <summary>
        /// Evento que recebe uma resposta de execução de ordens do sistema MDS.
        /// </summary>
        /// <param name="sender">Objeto com os atributos da ordem </param>
        /// <param name="e"></param>
        void EventMds_OnMDSStopStartEvent(object sender, MDSEventArgs e)
        {
            try
            {
                // Adiciona uma Thread no pool responsavel por executar o processamento do Stop.
                ThreadPool.QueueUserWorkItem(new WaitCallback(

                                                 delegate(object required)
                {
                    ProcessarEventoExecutouMDS(
                        (object)(sender)
                        );
                }));
            }
            catch (Exception ex)
            {
                logger.Error(string.Format("{0}{1}", "EventMds_OnMDSStopStartEvent: ", ex.Message));
                throw new Exception(string.Format("{0}{1}", "EventMds_OnMDSStopStartEvent: ", ex.Message));
            }
        }
예제 #3
0
파일: Form1.cs 프로젝트: radtek/Gradual
        void EventMds_OnMDSSRespostaCancelamentoEvent(object sender, MDSEventArgs e)
        {
            try
            {
                CR_CancelamentoStopResposta _CR_CancelamentoStopResposta
                    = (CR_CancelamentoStopResposta)(sender);

                int             id_stopstart  = int.Parse(_CR_CancelamentoStopResposta.pStrIdStopStart);
                int             id_status     = int.Parse(_CR_CancelamentoStopResposta.pStrStatus);
                OrdemStopStatus ordemStopEnum = OrdemStopStatus.CancelamentoAceitoExecutadoMDS;


                if (id_status == (int)RespostaOrdem.Aceito)
                {
                    ordemStopEnum = OrdemStopStatus.CancelamentoAceitoExecutadoMDS;

                    logger.Info(string.Format("{0}{1}", "\r\n " + int.Parse(_CR_CancelamentoStopResposta.pStrIdStopStart).ToString(), " Stop Cancelado pelo MDS"));

                    txtHistorico.Text += string.Format("{0}{1}", "\r\n " + int.Parse(_CR_CancelamentoStopResposta.pStrIdStopStart).ToString(), " Stop Cancelado pelo MDS");
                }

                if (id_status == (int)RespostaOrdem.Rejeitado)
                {
                    ordemStopEnum = OrdemStopStatus.CancelamentoRejeitadoMDS;

                    logger.Info(string.Format("{0}{1}", "\r\n Cancelamento do stop " + int.Parse(_CR_CancelamentoStopResposta.pStrIdStopStart).ToString(), " foi rejeitado pelo MDS"));

                    txtHistorico.Text += string.Format("{0}{1}", "\r\n Cancelamento do stop " + int.Parse(_CR_CancelamentoStopResposta.pStrIdStopStart).ToString(), " foi rejeitado pelo MDS");
                }

                //Altera o status no banco de dados
                new AutomacaoOrdensDados().CancelaOrdemStopStart(id_stopstart, (int)ordemStopEnum);
            }
            catch (Exception ex)
            {
                logger.Error(string.Format("{0}{1}", "EventMds_OnMDSSRespostaCancelamentoEvent: ", ex.Message));
            }
        }
예제 #4
0
        private void MessageBroker(object recv)
        {
            try
            {
                logger.Debug("MDS Msg [" + recv.ToString() + "]");

                switch (recv.ToString().Substring(0, 2))
                {
                case A4:
                {
                    A4_ResponseSignIn _A4_ResponseSignIn;

                    // Cria um ponteiro inteiro apontando para a string recebida do sinal
                    IntPtr pBufMessageA4 = Marshal.StringToBSTR(recv.ToString());

                    // Aloca memoria dinamicamente para armazenar a struct de acordo com o numero de bytes da Struct.
                    // utiliza MALLOC para alocação dinamica de memoria (simula uma passagem para o Heap ( operador new ) .
                    // Construção similar a :
                    // int *p = (int *) (malloc(sizeof(int));
                    _A4_ResponseSignIn = (A4_ResponseSignIn)(Marshal.PtrToStructure(pBufMessageA4, typeof(A4_ResponseSignIn)));

                    // Esvazia o espaço de memória alocado para armazenar a struct.
                    Marshal.FreeBSTR(pBufMessageA4);

                    MDSEventArgs args = new MDSEventArgs(_A4_ResponseSignIn);
                    if (this.OnMDSAuthenticationResponse != null)
                    {
                        OnMDSAuthenticationResponse(this, args);
                    }

                    //Event.MDSAuthenticationResponse(_A4_ResponseSignIn.pStrStatusRequest, _ClientSocket);
                }
                break;

                case StopSimples:
                {
                    SS_StopStartResposta _SS_StopSimplesResposta;


                    // Cria um ponteiro inteiro apontando para a string recebida do sinal
                    IntPtr pBufMessage = Marshal.StringToBSTR(recv.ToString());

                    // Aloca memoria dinamicamente para armazenar a struct de acordo com o numero de bytes da Struct.
                    // utiliza MALLOC para alocação dinamica de memoria (simula uma passagem para o stack ( operador new ) .
                    // Construção similar a :
                    // int *p = (int *) (malloc(sizeof(int));
                    _SS_StopSimplesResposta = (SS_StopStartResposta)(Marshal.PtrToStructure(pBufMessage, typeof(SS_StopStartResposta)));

                    // Esvazia o espaço de memória alocado para armazenar a struct.
                    Marshal.FreeBSTR(pBufMessage);

                    MDSEventArgs args = new MDSEventArgs(_SS_StopSimplesResposta);
                    if (this.OnMDSStopStartEvent != null)
                    {
                        this.OnMDSStopStartEvent(this, args);
                    }

                    //ThreadPool.QueueUserWorkItem(new WaitCallback(ExecuteFactoryEvent), _SS_StopSimplesResposta);
                }
                break;

                case RespostaStop:
                {
                    RS_RespostaStop _RS_RespostaStop;
                    // Cria um ponteiro inteiro apontando para a string recebida do sinal
                    IntPtr pBufMessageRS = Marshal.StringToBSTR(recv.ToString());

                    // Aloca memoria dinamicamente para armazenar a struct de acordo com o numero de bytes da Struct.
                    // utiliza MALLOC para alocação dinamica de memoria (simula uma passagem para o stack ( operador new ) .
                    // Construção similar a :
                    // int *p = (int *) (malloc(sizeof(int));
                    _RS_RespostaStop = (RS_RespostaStop)(Marshal.PtrToStructure(pBufMessageRS, typeof(RS_RespostaStop)));

                    // Esvazia o espaço de memória alocado para armazenar a struct.
                    Marshal.FreeBSTR(pBufMessageRS);

                    MDSEventArgs args = new MDSEventArgs(_RS_RespostaStop);
                    if (this.OnMDSSRespostaSolicitacaoEvent != null)
                    {
                        this.OnMDSSRespostaSolicitacaoEvent(this, args);
                    }

                    //ThreadPool.QueueUserWorkItem( new WaitCallback( ExecuteFactoryEvent), _RS_RespostaStop);
                }
                break;

                case RespostaCancelamento:
                {
                    CR_CancelamentoStopResposta _CR_CancelamentoStopResposta;

                    // Cria um ponteiro inteiro apontando para a string recebida do sinal
                    IntPtr pBufMessageCR = Marshal.StringToBSTR(recv.ToString());

                    // Aloca memoria dinamicamente para armazenar a struct de acordo com o numero de bytes da Struct.
                    // utiliza MALLOC para alocação dinamica de memoria (simula uma passagem para o stack ( operador new ) .
                    // Construção similar a :
                    // int *p = (int *) (malloc(sizeof(int));
                    _CR_CancelamentoStopResposta = (CR_CancelamentoStopResposta)(Marshal.PtrToStructure(pBufMessageCR, typeof(CR_CancelamentoStopResposta)));

                    // Esvazia o espaço de memória alocado para armazenar a struct.
                    Marshal.FreeBSTR(pBufMessageCR);

                    MDSEventArgs args = new MDSEventArgs(_CR_CancelamentoStopResposta);
                    if (this.OnMDSSRespostaCancelamentoEvent != null)
                    {
                        this.OnMDSSRespostaCancelamentoEvent(this, args);
                    }
                    //ThreadPool.QueueUserWorkItem(new WaitCallback(ExecuteFactoryEvent
                    //    ), _CR_CancelamentoStopResposta);
                }
                break;

                case Pong:
                {
                    PG_Pong pong;

                    // Cria um ponteiro inteiro apontando para a string recebida do sinal
                    IntPtr pBufMessagePG = Marshal.StringToBSTR(recv.ToString());

                    // Aloca memoria dinamicamente para armazenar a struct de acordo com o numero de bytes da Struct.
                    // utiliza MALLOC para alocação dinamica de memoria (simula uma passagem para o stack ( operador new ) .
                    // Construção similar a :
                    // int *p = (int *) (malloc(sizeof(int));
                    pong = (PG_Pong)(Marshal.PtrToStructure(pBufMessagePG, typeof(PG_Pong)));

                    // Esvazia o espaço de memória alocado para armazenar a struct.
                    Marshal.FreeBSTR(pBufMessagePG);

                    MDSEventArgs args = new MDSEventArgs(pong);
                    if (this.OnMDSPing != null)
                    {
                        this.OnMDSPing(this, args);
                    }

                    //ThreadPool.QueueUserWorkItem(new WaitCallback(ExecuteFactoryEvent), pong);
                }
                break;
                }
            }
            catch (Exception ex)
            {
                logger.Error("MessageBroker(): " + ex.Message, ex);
            }
        }