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)); } }
/// <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)); } }
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)); } }
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); } }