private void OnReceiveCompleted(Object source, ReceiveCompletedEventArgs asyncResult) { try { MessageQueue mq = (MessageQueue)source; if (mq != null) { try { System.Messaging.Message message = null; try { message = mq.EndReceive(asyncResult.AsyncResult); } catch (Exception ex) { log.Error(ex.Message); } if (message != null) { MessageBean messageBean = message.Body as MessageBean; if (messageBean != null) { if (messageBean.MessageType == MessageTypeEnum.FAULT) { FaultFrameDecoded tmp = new FaultFrameDecoded(); tmp.Parse(messageBean.Message); SingletonStatsHistory.GetInstance().AddFault(tmp); log.InfoFormat("Fault: {0}", tmp.ToString()); } else { StatusFrameDecoded tmp = new StatusFrameDecoded(); tmp.Parse(messageBean.Message); SingletonStatsHistory.GetInstance().AddStatus(tmp); log.InfoFormat("Status: {0}", tmp.ToString()); } } else { log.Info("Message vino null"); } } } finally { if (isRunning) { mq.BeginReceive(); } } } return; } catch (Exception exc) { log.Error(exc.Message); } }
private void CommandREQFailureReport(Connection clientConnection, Data dato) { FaultFrameDecoded message = new FaultFrameDecoded(); message.Parse(dato.Payload.Message); SingletonDeviceInfoHandler.GetInstance().UpdateDeviceStatus(message); log.DebugFormat("Llego REQ Failure con {0}", message.ToString()); log.DebugFormat("Notificar a server dispositivos y estadisticas"); MessageBean messageBean = new MessageBean() { Message = dato.Payload.Message, MessageType = MessageTypeEnum.FAULT }; StatisticsQueueClient.GetInstance().SendMessages(messageBean); }