public override bool Go(BasicDeliverEventArgs ea) { switch (ea.RoutingKey) { case MqKeyword.MinerDataAddedRoutingKey: { DateTime timestamp = Timestamp.FromTimestamp(ea.BasicProperties.Timestamp.UnixTime); string appId = ea.BasicProperties.AppId; string minerId = MinerClientMqBodyUtil.GetMinerIdMqReciveBody(ea.Body); if (!string.IsNullOrEmpty(minerId)) { VirtualRoot.RaiseEvent(new MinerDataAddedMqMessage(appId, minerId, timestamp)); } } break; case MqKeyword.MinerDataRemovedRoutingKey: { DateTime timestamp = Timestamp.FromTimestamp(ea.BasicProperties.Timestamp.UnixTime); string appId = ea.BasicProperties.AppId; string minerId = MinerClientMqBodyUtil.GetMinerIdMqReciveBody(ea.Body); if (!string.IsNullOrEmpty(minerId)) { VirtualRoot.RaiseEvent(new MinerDataRemovedMqMessage(appId, minerId, timestamp)); } } break; case MqKeyword.MinerSignChangedRoutingKey: { DateTime timestamp = Timestamp.FromTimestamp(ea.BasicProperties.Timestamp.UnixTime); string appId = ea.BasicProperties.AppId; string minerId = MinerClientMqBodyUtil.GetMinerIdMqReciveBody(ea.Body); if (!string.IsNullOrEmpty(minerId)) { VirtualRoot.RaiseEvent(new MinerSignChangedMqMessage(appId, minerId, timestamp)); } } break; default: return(false); } return(true); }