コード例 #1
0
        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);
        }