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); } }
public List <DeviceStatusInfo> GetDeviceStatuses(string idDevice, int resultMaxSize) { List <DeviceStatusInfo> ret = SingletonStatsHistory.GetInstance().GetDeviceStatus(idDevice); if (ret.Count > 0) { ret.Reverse(); if (ret.Count < resultMaxSize) { resultMaxSize = ret.Count; } ret = ret.GetRange(0, resultMaxSize); } return(ret); }