public override bool Go(BasicDeliverEventArgs ea) { switch (ea.RoutingKey) { case MqKeyword.MinerClientWsClosedRoutingKey: { DateTime timestamp = Timestamp.FromTimestamp(ea.BasicProperties.Timestamp.UnixTime); string appId = ea.BasicProperties.AppId; Guid clientId = MinerClientMqBodyUtil.GetClientIdMqReciveBody(ea.Body); if (clientId != Guid.Empty) { VirtualRoot.RaiseEvent(new MinerClientWsClosedMqEvent(appId, clientId, timestamp)); } } break; case MqKeyword.MinerClientsWsBreathedRoutingKey: { DateTime timestamp = Timestamp.FromTimestamp(ea.BasicProperties.Timestamp.UnixTime); string appId = ea.BasicProperties.AppId; Guid[] clientIds = MinerClientMqBodyUtil.GetClientIdsMqReciveBody(ea.Body); if (clientIds != null && clientIds.Length != 0) { VirtualRoot.RaiseEvent(new MinerClientsWsBreathedMqEvent(appId, clientIds, timestamp)); } } break; default: return(false); } return(true); }
public override void Go(BasicDeliverEventArgs ea) { switch (ea.RoutingKey) { // 上报的算力放在这里消费,因为只有WebApiServer消费该类型的消息,WsServer不消费该类型的消息 case MqKeyword.SpeedRoutingKey: { Guid clientId = MinerClientMqBodyUtil.GetClientIdMqReciveBody(ea.Body); DateTime timestamp = Timestamp.FromTimestamp(ea.BasicProperties.Timestamp.UnixTime); string appId = ea.BasicProperties.AppId; string minerIp = ea.BasicProperties.ReadHeaderString(MqKeyword.MinerIpHeaderName); VirtualRoot.RaiseEvent(new SpeedDataMqMessage(appId, clientId, minerIp, timestamp)); } break; case MqKeyword.MinerClientWsOpenedRoutingKey: { DateTime timestamp = Timestamp.FromTimestamp(ea.BasicProperties.Timestamp.UnixTime); string appId = ea.BasicProperties.AppId; Guid clientId = MinerClientMqBodyUtil.GetClientIdMqReciveBody(ea.Body); if (clientId != Guid.Empty) { VirtualRoot.RaiseEvent(new MinerClientWsOpenedMqMessage(appId, clientId, timestamp)); } } break; case MqKeyword.MinerClientWsClosedRoutingKey: { DateTime timestamp = Timestamp.FromTimestamp(ea.BasicProperties.Timestamp.UnixTime); string appId = ea.BasicProperties.AppId; Guid clientId = MinerClientMqBodyUtil.GetClientIdMqReciveBody(ea.Body); if (clientId != Guid.Empty) { VirtualRoot.RaiseEvent(new MinerClientWsClosedMqMessage(appId, clientId, timestamp)); } } break; case MqKeyword.MinerClientWsBreathedRoutingKey: { DateTime timestamp = Timestamp.FromTimestamp(ea.BasicProperties.Timestamp.UnixTime); string appId = ea.BasicProperties.AppId; Guid clientId = MinerClientMqBodyUtil.GetClientIdMqReciveBody(ea.Body); if (clientId != Guid.Empty) { VirtualRoot.RaiseEvent(new MinerClientWsBreathedMqMessage(appId, clientId, timestamp)); } } break; case MqKeyword.ChangeMinerSignRoutingKey: { MinerSign minerSign = MinerClientMqBodyUtil.GetChangeMinerSignMqReceiveBody(ea.Body); if (minerSign != null) { VirtualRoot.Execute(new ChangeMinerSignMqMessage(minerSign)); } } break; default: break; } }
protected override Dictionary <string, Action <BasicDeliverEventArgs> > GetPaths() { return(new Dictionary <string, Action <BasicDeliverEventArgs> > { [MqKeyword.SpeedsRoutingKey] = ea => { ClientIdIp[] clientIdIps = MinerClientMqBodyUtil.GetClientIdIpsMqReciveBody(ea.Body); string appId = ea.BasicProperties.AppId; VirtualRoot.RaiseEvent(new SpeedDatasMqEvent(appId, clientIdIps, ea.GetTimestamp())); }, [MqKeyword.MinerSignSetedRoutingKey] = ea => { string appId = ea.BasicProperties.AppId; MinerSign minerSign = MinerClientMqBodyUtil.GetMinerSignMqReceiveBody(ea.Body); if (minerSign != null) { VirtualRoot.RaiseEvent(new MinerSignSetedMqEvent(appId, minerSign, ea.GetTimestamp())); } }, [MqKeyword.QueryClientsForWsRoutingKey] = ea => { string appId = ea.BasicProperties.AppId; string mqMessageId = ea.BasicProperties.MessageId; string loginName = ea.BasicProperties.ReadHeaderString(MqKeyword.LoginNameHeaderName); string sessionId = ea.BasicProperties.ReadHeaderString(MqKeyword.SessionIdHeaderName); QueryClientsForWsRequest query = MinerClientMqBodyUtil.GetQueryClientsForWsMqReceiveBody(ea.Body); if (query != null) { VirtualRoot.Execute(new QueryClientsForWsMqCommand(appId, mqMessageId, ea.GetTimestamp(), loginName, sessionId, query)); } } }); }
public void SendSpeeds(ClientIdIp[] clientIdIps) { if (clientIdIps == null || clientIdIps.Length == 0) { return; } var basicProperties = CreateNonePersistentBasicProperties(); _mq.BasicPublish( routingKey: MqKeyword.SpeedsRoutingKey, basicProperties: basicProperties, body: MinerClientMqBodyUtil.GetClientIdIpsMqSendBody(clientIdIps)); }
public void SendAutoQueryClientsForWs(QueryClientsForWsRequest[] requests) { if (requests == null || requests.Length == 0) { return; } var basicProperties = CreateNonePersistentBasicProperties(); _mq.BasicPublish( routingKey: MqKeyword.AutoQueryClientsForWsRoutingKey, basicProperties: basicProperties, body: MinerClientMqBodyUtil.GetAutoQueryClientsForWsMqSendBody(requests)); }
public void SendMinerSignsSeted(MinerSign[] minerSigns) { if (minerSigns == null || minerSigns.Length == 0) { return; } var basicProperties = CreateNonePersistentBasicProperties(); _mq.BasicPublish( routingKey: MqKeyword.MinerSignsSetedRoutingKey, basicProperties: basicProperties, body: MinerClientMqBodyUtil.GetMinerSignsMqSendBody(minerSigns)); }
public void SendMinerDataRemoved(string minerId, Guid clientId) { if (string.IsNullOrEmpty(minerId)) { return; } var basicProperties = CreateBasicProperties(clientId); _mq.BasicPublish( routingKey: MqKeyword.MinerDataRemovedRoutingKey, basicProperties: basicProperties, body: MinerClientMqBodyUtil.GetMinerIdMqSendBody(minerId)); }
public void SendMinerClientsWsBreathed(Guid[] clientIds) { if (clientIds == null || clientIds.Length == 0) { return; } var basicProperties = CreateNonePersistentBasicProperties(); _mq.BasicPublish( routingKey: MqKeyword.MinerClientsWsBreathedRoutingKey, basicProperties: basicProperties, body: MinerClientMqBodyUtil.GetClientIdsMqSendBody(clientIds)); }
public void SendMinerSignSeted(MinerSign minerSign) { if (minerSign == null || string.IsNullOrEmpty(minerSign.Id)) { return; } var basicProperties = CreateNonePersistentBasicProperties(minerSign.LoginName); _mq.BasicPublish( routingKey: MqKeyword.MinerSignSetedRoutingKey, basicProperties: basicProperties, body: MinerClientMqBodyUtil.GetMinerSignMqSendBody(minerSign)); }
public void SendMinerClientWsClosed(Guid clientId) { if (clientId == Guid.Empty) { return; } var basicProperties = CreateNonePersistentBasicProperties(); _mq.BasicPublish( routingKey: MqKeyword.MinerClientWsClosedRoutingKey, basicProperties: basicProperties, body: MinerClientMqBodyUtil.GetClientIdMqSendBody(clientId)); }
public void SendQueryClientsForWs(string sessionId, QueryClientsForWsRequest request) { if (string.IsNullOrEmpty(sessionId) || request == null || string.IsNullOrEmpty(request.LoginName)) { return; } var basicProperties = CreateNonePersistentWsBasicProperties(request.LoginName, sessionId); _mq.BasicPublish( routingKey: MqKeyword.QueryClientsForWsRoutingKey, basicProperties: basicProperties, body: MinerClientMqBodyUtil.GetQueryClientsForWsMqSendBody(request)); }
public void SendResponseClientsForWs(string wsServerIp, string loginName, string sessionId, QueryClientsResponse response) { if (response == null) { return; } var basicProperties = CreateWsBasicProperties(loginName, sessionId); _mq.MqChannel.BasicPublish( exchange: MqKeyword.NTMinerExchange, routingKey: string.Format(MqKeyword.QueryClientsForWsResponseRoutingKey, wsServerIp), basicProperties: basicProperties, body: MinerClientMqBodyUtil.GetQueryClientsResponseMqSendBody(response)); }
public void SendMinerSignChanged(string minerId) { if (string.IsNullOrEmpty(minerId)) { return; } var basicProperties = CreateBasicProperties(); _serverConnection.Channel.BasicPublish( exchange: MqKeyword.NTMinerExchange, routingKey: MqKeyword.MinerSignChangedRoutingKey, basicProperties: basicProperties, body: MinerClientMqBodyUtil.GetMinerIdMqSendBody(minerId)); }
public void SendMinerClientWsBreathed(string loginName, Guid clientId) { if (string.IsNullOrEmpty(loginName) || clientId == Guid.Empty) { return; } var basicProperties = CreateBasicProperties(loginName); _serverConnection.MqChannel.BasicPublish( exchange: MqKeyword.NTMinerExchange, routingKey: MqKeyword.MinerClientWsBreathedRoutingKey, basicProperties: basicProperties, body: MinerClientMqBodyUtil.GetClientIdMqSendBody(clientId)); }
public void SendMinerClientWsOpened(Guid clientId) { if (clientId == Guid.Empty) { return; } var basicProperties = CreateNonePersistentBasicProperties(); _mq.MqChannel.BasicPublish( exchange: MqKeyword.NTMinerExchange, routingKey: MqKeyword.MinerClientWsOpenedRoutingKey, basicProperties: basicProperties, body: MinerClientMqBodyUtil.GetClientIdMqSendBody(clientId)); }
public void SendChangeMinerSign(MinerSign minerSign) { if (minerSign == null || string.IsNullOrEmpty(minerSign.Id)) { return; } var basicProperties = CreatePersistentBasicProperties(minerSign.LoginName); _mq.MqChannel.BasicPublish( exchange: MqKeyword.NTMinerExchange, routingKey: MqKeyword.ChangeMinerSignRoutingKey, basicProperties: basicProperties, body: MinerClientMqBodyUtil.GetChangeMinerSignMqSendBody(minerSign)); }
public void SendSpeed(string loginName, Guid clientId, string minerIp) { if (string.IsNullOrEmpty(loginName) || clientId == Guid.Empty || string.IsNullOrEmpty(minerIp)) { return; } var basicProperties = CreateBasicProperties(loginName); basicProperties.Headers[MqKeyword.MinerIpHeaderName] = minerIp; _serverConnection.MqChannel.BasicPublish( exchange: MqKeyword.NTMinerExchange, routingKey: MqKeyword.SpeedRoutingKey, basicProperties: basicProperties, body: MinerClientMqBodyUtil.GetClientIdMqSendBody(clientId)); }
protected override Dictionary <string, Action <BasicDeliverEventArgs> > GetPaths() { return(new Dictionary <string, Action <BasicDeliverEventArgs> > { [_queryClientsForWsResponseRoutingKey] = ea => { string appId = ea.BasicProperties.AppId; string mqCorrelationId = ea.BasicProperties.CorrelationId; string loginName = ea.BasicProperties.ReadHeaderString(MqKeyword.LoginNameHeaderName); string sessionId = ea.BasicProperties.ReadHeaderString(MqKeyword.SessionIdHeaderName); QueryClientsResponse response = MinerClientMqBodyUtil.GetQueryClientsResponseMqReceiveBody(ea.Body); if (response != null) { VirtualRoot.RaiseEvent(new QueryClientsForWsResponseMqEvent(appId, mqCorrelationId, ea.GetTimestamp(), loginName, sessionId, response)); } } }); }
public void SendResponseClientsForWs(string wsServerIp, string mqCorrelationId, QueryClientsResponseEx[] responses) { if (responses == null || responses.Length == 0) { return; } var basicProperties = CreateBasicProperties(); if (!string.IsNullOrEmpty(mqCorrelationId)) { basicProperties.CorrelationId = mqCorrelationId; } _mq.BasicPublish( routingKey: string.Format(MqKeyword.AutoQueryClientsForWsResponseRoutingKey, wsServerIp), basicProperties: basicProperties, body: MinerClientMqBodyUtil.GetAutoQueryClientsResponseMqSendBody(responses)); }
public override bool Go(BasicDeliverEventArgs ea) { switch (ea.RoutingKey) { // 上报的算力放在这里消费,因为只有WebApiServer消费该类型的消息,WsServer不消费该类型的消息 case MqKeyword.SpeedRoutingKey: { Guid clientId = MinerClientMqBodyUtil.GetClientIdMqReciveBody(ea.Body); DateTime timestamp = Timestamp.FromTimestamp(ea.BasicProperties.Timestamp.UnixTime); string appId = ea.BasicProperties.AppId; string minerIp = ea.BasicProperties.ReadHeaderString(MqKeyword.MinerIpHeaderName); VirtualRoot.RaiseEvent(new SpeedDataMqEvent(appId, clientId, minerIp, timestamp)); } break; case MqKeyword.ChangeMinerSignRoutingKey: { string appId = ea.BasicProperties.AppId; MinerSign minerSign = MinerClientMqBodyUtil.GetChangeMinerSignMqReceiveBody(ea.Body); if (minerSign != null) { VirtualRoot.Execute(new ChangeMinerSignMqCommand(appId, minerSign)); } } break; case MqKeyword.QueryClientsForWsRoutingKey: { DateTime timestamp = Timestamp.FromTimestamp(ea.BasicProperties.Timestamp.UnixTime); string appId = ea.BasicProperties.AppId; string mqMessageId = ea.BasicProperties.MessageId; string loginName = ea.BasicProperties.ReadHeaderString(MqKeyword.LoginNameHeaderName); string sessionId = ea.BasicProperties.ReadHeaderString(MqKeyword.SessionIdHeaderName); QueryClientsForWsRequest query = MinerClientMqBodyUtil.GetQueryClientsForWsMqReceiveBody(ea.Body); if (query != null) { VirtualRoot.Execute(new QueryClientsForWsMqCommand(appId, mqMessageId, timestamp, loginName, sessionId, query)); } } break; default: return(false); } return(true); }
public override bool Go(BasicDeliverEventArgs ea) { switch (ea.RoutingKey) { case MqKeyword.SpeedsRoutingKey: { ClientIdIp[] clientIdIps = MinerClientMqBodyUtil.GetClientIdIpsMqReciveBody(ea.Body); DateTime timestamp = Timestamp.FromTimestamp(ea.BasicProperties.Timestamp.UnixTime); string appId = ea.BasicProperties.AppId; VirtualRoot.RaiseEvent(new SpeedDatasMqEvent(appId, clientIdIps, timestamp)); } break; case MqKeyword.MinerSignSetedRoutingKey: { string appId = ea.BasicProperties.AppId; DateTime timestamp = Timestamp.FromTimestamp(ea.BasicProperties.Timestamp.UnixTime); MinerSign minerSign = MinerClientMqBodyUtil.GetMinerSignMqReceiveBody(ea.Body); if (minerSign != null) { VirtualRoot.RaiseEvent(new MinerSignSetedMqEvent(appId, minerSign, timestamp)); } } break; case MqKeyword.QueryClientsForWsRoutingKey: { DateTime timestamp = Timestamp.FromTimestamp(ea.BasicProperties.Timestamp.UnixTime); string appId = ea.BasicProperties.AppId; string mqMessageId = ea.BasicProperties.MessageId; string loginName = ea.BasicProperties.ReadHeaderString(MqKeyword.LoginNameHeaderName); string sessionId = ea.BasicProperties.ReadHeaderString(MqKeyword.SessionIdHeaderName); QueryClientsForWsRequest query = MinerClientMqBodyUtil.GetQueryClientsForWsMqReceiveBody(ea.Body); if (query != null) { VirtualRoot.Execute(new QueryClientsForWsMqCommand(appId, mqMessageId, timestamp, loginName, sessionId, query)); } } break; default: return(false); } return(true); }
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); }
public override bool Go(BasicDeliverEventArgs ea) { if (ea.RoutingKey == _queryClientsForWsResponseRoutingKey) { DateTime timestamp = Timestamp.FromTimestamp(ea.BasicProperties.Timestamp.UnixTime); string appId = ea.BasicProperties.AppId; string loginName = ea.BasicProperties.ReadHeaderString(MqKeyword.LoginNameHeaderName); string sessionId = ea.BasicProperties.ReadHeaderString(MqKeyword.SessionIdHeaderName); QueryClientsResponse response = MinerClientMqBodyUtil.GetQueryClientsResponseMqReceiveBody(ea.Body); if (response != null) { VirtualRoot.RaiseEvent(new QueryClientsForWsResponseMqMessage(appId, timestamp, loginName, sessionId, response)); } return(true); } else { return(false); } }
protected override Dictionary <string, Action <BasicDeliverEventArgs> > GetPaths() { return(new Dictionary <string, Action <BasicDeliverEventArgs> > { [MqKeyword.MinerClientWsClosedRoutingKey] = ea => { string appId = ea.BasicProperties.AppId; Guid clientId = MinerClientMqBodyUtil.GetClientIdMqReciveBody(ea.Body); if (clientId != Guid.Empty) { VirtualRoot.RaiseEvent(new MinerClientWsClosedMqEvent(appId, clientId, ea.GetTimestamp())); } }, [MqKeyword.MinerClientsWsBreathedRoutingKey] = ea => { string appId = ea.BasicProperties.AppId; Guid[] clientIds = MinerClientMqBodyUtil.GetClientIdsMqReciveBody(ea.Body); if (clientIds != null && clientIds.Length != 0) { VirtualRoot.RaiseEvent(new MinerClientsWsBreathedMqEvent(appId, clientIds, ea.GetTimestamp())); } } }); }
public void SendResponseClientsForWs( string wsServerIp, string loginName, string sessionId, string mqCorrelationId, QueryClientsResponse response) { if (response == null) { return; } var basicProperties = CreateWsBasicProperties(loginName, sessionId); if (!string.IsNullOrEmpty(mqCorrelationId)) { basicProperties.CorrelationId = mqCorrelationId; } _mq.BasicPublish( routingKey: string.Format(MqKeyword.QueryClientsForWsResponseRoutingKey, wsServerIp), basicProperties: basicProperties, body: MinerClientMqBodyUtil.GetQueryClientsResponseMqSendBody(response)); }
public override bool Go(BasicDeliverEventArgs ea) { switch (ea.RoutingKey) { case MqKeyword.MinerSignSetedRoutingKey: { DateTime timestamp = Timestamp.FromTimestamp(ea.BasicProperties.Timestamp.UnixTime); string appId = ea.BasicProperties.AppId; MinerSign minerSign = MinerClientMqBodyUtil.GetMinerSignMqReceiveBody(ea.Body); if (minerSign != null) { VirtualRoot.RaiseEvent(new MinerSignSetedMqEvent(appId, minerSign, timestamp)); } } break; case WsMqKeyword.GetConsoleOutLinesRoutingKey: { DateTime timestamp = Timestamp.FromTimestamp(ea.BasicProperties.Timestamp.UnixTime); string appId = ea.BasicProperties.AppId; AfterTimeRequest[] requests = OperationMqBodyUtil.GetAfterTimeRequestMqReceiveBody(ea.Body); if (requests != null && requests.Length != 0) { foreach (var request in requests) { VirtualRoot.RaiseEvent(new GetConsoleOutLinesMqEvent(appId, request.LoginName, timestamp, request.ClientId, request.AfterTime)); } } } break; case WsMqKeyword.FastGetConsoleOutLinesRoutingKey: { string loginName = ea.BasicProperties.ReadHeaderString(MqKeyword.LoginNameHeaderName); DateTime timestamp = Timestamp.FromTimestamp(ea.BasicProperties.Timestamp.UnixTime); string appId = ea.BasicProperties.AppId; long afterTimestamp = OperationMqBodyUtil.GetFastGetConsoleOutLinesMqReceiveBody(ea.Body); if (ea.BasicProperties.ReadHeaderGuid(MqKeyword.ClientIdHeaderName, out Guid clientId)) { VirtualRoot.RaiseEvent(new GetConsoleOutLinesMqEvent(appId, loginName, timestamp, clientId, afterTimestamp)); } } break; case WsMqKeyword.ConsoleOutLinesRoutingKey: { string loginName = ea.BasicProperties.ReadHeaderString(MqKeyword.LoginNameHeaderName); DateTime timestamp = Timestamp.FromTimestamp(ea.BasicProperties.Timestamp.UnixTime); string appId = ea.BasicProperties.AppId; var data = OperationMqBodyUtil.GetConsoleOutLinesMqReceiveBody(ea.Body); if (ea.BasicProperties.ReadHeaderGuid(MqKeyword.ClientIdHeaderName, out Guid clientId)) { VirtualRoot.RaiseEvent(new ConsoleOutLinesMqEvent(appId, loginName, timestamp, clientId, data)); } } break; case WsMqKeyword.GetLocalMessagesRoutingKey: { DateTime timestamp = Timestamp.FromTimestamp(ea.BasicProperties.Timestamp.UnixTime); string appId = ea.BasicProperties.AppId; AfterTimeRequest[] requests = OperationMqBodyUtil.GetAfterTimeRequestMqReceiveBody(ea.Body); if (requests != null && requests.Length != 0) { foreach (var request in requests) { VirtualRoot.RaiseEvent(new GetLocalMessagesMqEvent(appId, request.LoginName, timestamp, request.ClientId, request.AfterTime)); } } } break; case WsMqKeyword.FastGetLocalMessagesRoutingKey: { string loginName = ea.BasicProperties.ReadHeaderString(MqKeyword.LoginNameHeaderName); DateTime timestamp = Timestamp.FromTimestamp(ea.BasicProperties.Timestamp.UnixTime); string appId = ea.BasicProperties.AppId; long afterTimestamp = OperationMqBodyUtil.GetFastGetLocalMessagesMqReceiveBody(ea.Body); if (ea.BasicProperties.ReadHeaderGuid(MqKeyword.ClientIdHeaderName, out Guid clientId)) { VirtualRoot.RaiseEvent(new GetLocalMessagesMqEvent(appId, loginName, timestamp, clientId, afterTimestamp)); } } break; case WsMqKeyword.LocalMessagesRoutingKey: { string loginName = ea.BasicProperties.ReadHeaderString(MqKeyword.LoginNameHeaderName); DateTime timestamp = Timestamp.FromTimestamp(ea.BasicProperties.Timestamp.UnixTime); string appId = ea.BasicProperties.AppId; var data = OperationMqBodyUtil.GetLocalMessagesMqReceiveBody(ea.Body); if (ea.BasicProperties.ReadHeaderGuid(MqKeyword.ClientIdHeaderName, out Guid clientId)) { VirtualRoot.RaiseEvent(new LocalMessagesMqEvent(appId, loginName, timestamp, clientId, data)); } } break; case WsMqKeyword.GetOperationResultsRoutingKey: { DateTime timestamp = Timestamp.FromTimestamp(ea.BasicProperties.Timestamp.UnixTime); string appId = ea.BasicProperties.AppId; AfterTimeRequest[] requests = OperationMqBodyUtil.GetAfterTimeRequestMqReceiveBody(ea.Body); if (requests != null && requests.Length != 0) { foreach (var request in requests) { VirtualRoot.RaiseEvent(new GetOperationResultsMqEvent(appId, request.LoginName, timestamp, request.ClientId, request.AfterTime)); } } } break; case WsMqKeyword.FastGetOperationResultsRoutingKey: { string loginName = ea.BasicProperties.ReadHeaderString(MqKeyword.LoginNameHeaderName); DateTime timestamp = Timestamp.FromTimestamp(ea.BasicProperties.Timestamp.UnixTime); string appId = ea.BasicProperties.AppId; long afterTimestamp = OperationMqBodyUtil.GetFastGetOperationResultsMqReceiveBody(ea.Body); if (ea.BasicProperties.ReadHeaderGuid(MqKeyword.ClientIdHeaderName, out Guid clientId)) { VirtualRoot.RaiseEvent(new GetOperationResultsMqEvent(appId, loginName, timestamp, clientId, afterTimestamp)); } } break; case WsMqKeyword.OperationResultsRoutingKey: { string loginName = ea.BasicProperties.ReadHeaderString(MqKeyword.LoginNameHeaderName); DateTime timestamp = Timestamp.FromTimestamp(ea.BasicProperties.Timestamp.UnixTime); string appId = ea.BasicProperties.AppId; var data = OperationMqBodyUtil.GetOperationResultsMqReceiveBody(ea.Body); if (ea.BasicProperties.ReadHeaderGuid(MqKeyword.ClientIdHeaderName, out Guid clientId)) { VirtualRoot.RaiseEvent(new OperationResultsMqEvent(appId, loginName, timestamp, clientId, data)); } } break; case WsMqKeyword.GetDrivesRoutingKey: { string loginName = ea.BasicProperties.ReadHeaderString(MqKeyword.LoginNameHeaderName); DateTime timestamp = Timestamp.FromTimestamp(ea.BasicProperties.Timestamp.UnixTime); string appId = ea.BasicProperties.AppId; if (ea.BasicProperties.ReadHeaderGuid(MqKeyword.ClientIdHeaderName, out Guid clientId)) { VirtualRoot.RaiseEvent(new GetDrivesMqEvent(appId, loginName, timestamp, clientId)); } } break; case WsMqKeyword.DrivesRoutingKey: { string loginName = ea.BasicProperties.ReadHeaderString(MqKeyword.LoginNameHeaderName); DateTime timestamp = Timestamp.FromTimestamp(ea.BasicProperties.Timestamp.UnixTime); string appId = ea.BasicProperties.AppId; var data = OperationMqBodyUtil.GetDrivesMqReceiveBody(ea.Body); if (ea.BasicProperties.ReadHeaderGuid(MqKeyword.ClientIdHeaderName, out Guid clientId)) { VirtualRoot.RaiseEvent(new DrivesMqEvent(appId, loginName, timestamp, clientId, data)); } } break; case WsMqKeyword.GetLocalIpsRoutingKey: { string loginName = ea.BasicProperties.ReadHeaderString(MqKeyword.LoginNameHeaderName); DateTime timestamp = Timestamp.FromTimestamp(ea.BasicProperties.Timestamp.UnixTime); string appId = ea.BasicProperties.AppId; if (ea.BasicProperties.ReadHeaderGuid(MqKeyword.ClientIdHeaderName, out Guid clientId)) { VirtualRoot.RaiseEvent(new GetLocalIpsMqEvent(appId, loginName, timestamp, clientId)); } } break; case WsMqKeyword.LocalIpsRoutingKey: { string loginName = ea.BasicProperties.ReadHeaderString(MqKeyword.LoginNameHeaderName); DateTime timestamp = Timestamp.FromTimestamp(ea.BasicProperties.Timestamp.UnixTime); string appId = ea.BasicProperties.AppId; var data = OperationMqBodyUtil.GetLocalIpsMqReceiveBody(ea.Body); if (ea.BasicProperties.ReadHeaderGuid(MqKeyword.ClientIdHeaderName, out Guid clientId)) { VirtualRoot.RaiseEvent(new LocalIpsMqEvent(appId, loginName, timestamp, clientId, data)); } } break; case WsMqKeyword.OperationReceivedRoutingKey: { string loginName = ea.BasicProperties.ReadHeaderString(MqKeyword.LoginNameHeaderName); DateTime timestamp = Timestamp.FromTimestamp(ea.BasicProperties.Timestamp.UnixTime); string appId = ea.BasicProperties.AppId; if (ea.BasicProperties.ReadHeaderGuid(MqKeyword.ClientIdHeaderName, out Guid clientId)) { VirtualRoot.RaiseEvent(new OperationReceivedMqEvent(appId, loginName, timestamp, clientId)); } } break; case WsMqKeyword.GetSpeedRoutingKey: { DateTime timestamp = Timestamp.FromTimestamp(ea.BasicProperties.Timestamp.UnixTime); string appId = ea.BasicProperties.AppId; UserGetSpeedRequest[] requests = OperationMqBodyUtil.GetGetSpeedMqReceiveBody(ea.Body); if (requests != null && requests.Length != 0) { VirtualRoot.RaiseEvent(new GetSpeedMqEvent(appId, timestamp, requests)); } } break; case WsMqKeyword.EnableRemoteDesktopRoutingKey: { string loginName = ea.BasicProperties.ReadHeaderString(MqKeyword.LoginNameHeaderName); DateTime timestamp = Timestamp.FromTimestamp(ea.BasicProperties.Timestamp.UnixTime); string appId = ea.BasicProperties.AppId; if (ea.BasicProperties.ReadHeaderGuid(MqKeyword.ClientIdHeaderName, out Guid clientId)) { VirtualRoot.RaiseEvent(new EnableRemoteDesktopMqEvent(appId, loginName, timestamp, clientId)); } } break; case WsMqKeyword.BlockWAURoutingKey: { string loginName = ea.BasicProperties.ReadHeaderString(MqKeyword.LoginNameHeaderName); DateTime timestamp = Timestamp.FromTimestamp(ea.BasicProperties.Timestamp.UnixTime); string appId = ea.BasicProperties.AppId; if (ea.BasicProperties.ReadHeaderGuid(MqKeyword.ClientIdHeaderName, out Guid clientId)) { VirtualRoot.RaiseEvent(new BlockWAUMqEvent(appId, loginName, timestamp, clientId)); } } break; case WsMqKeyword.SetVirtualMemoryRoutingKey: { string loginName = ea.BasicProperties.ReadHeaderString(MqKeyword.LoginNameHeaderName); DateTime timestamp = Timestamp.FromTimestamp(ea.BasicProperties.Timestamp.UnixTime); string appId = ea.BasicProperties.AppId; if (ea.BasicProperties.ReadHeaderGuid(MqKeyword.ClientIdHeaderName, out Guid clientId)) { var data = OperationMqBodyUtil.GetSetVirtualMemoryMqReceiveBody(ea.Body); VirtualRoot.RaiseEvent(new SetVirtualMemoryMqEvent(appId, loginName, timestamp, clientId, data)); } } break; case WsMqKeyword.SetLocalIpsRoutingKey: { string loginName = ea.BasicProperties.ReadHeaderString(MqKeyword.LoginNameHeaderName); DateTime timestamp = Timestamp.FromTimestamp(ea.BasicProperties.Timestamp.UnixTime); string appId = ea.BasicProperties.AppId; if (ea.BasicProperties.ReadHeaderGuid(MqKeyword.ClientIdHeaderName, out Guid clientId)) { var data = OperationMqBodyUtil.GetSetLocalIpsMqReceiveBody(ea.Body); VirtualRoot.RaiseEvent(new SetLocalIpsMqEvent(appId, loginName, timestamp, clientId, data)); } } break; case WsMqKeyword.SwitchRadeonGpuRoutingKey: { string loginName = ea.BasicProperties.ReadHeaderString(MqKeyword.LoginNameHeaderName); DateTime timestamp = Timestamp.FromTimestamp(ea.BasicProperties.Timestamp.UnixTime); string appId = ea.BasicProperties.AppId; if (ea.BasicProperties.ReadHeaderGuid(MqKeyword.ClientIdHeaderName, out Guid clientId)) { bool on = OperationMqBodyUtil.GetSwitchRadeonGpuMqReceiveBody(ea.Body); VirtualRoot.RaiseEvent(new SwitchRadeonGpuMqEvent(appId, loginName, timestamp, clientId, on)); } } break; case WsMqKeyword.GetSelfWorkLocalJsonRoutingKey: { string loginName = ea.BasicProperties.ReadHeaderString(MqKeyword.LoginNameHeaderName); DateTime timestamp = Timestamp.FromTimestamp(ea.BasicProperties.Timestamp.UnixTime); string appId = ea.BasicProperties.AppId; if (ea.BasicProperties.ReadHeaderGuid(MqKeyword.ClientIdHeaderName, out Guid clientId)) { VirtualRoot.RaiseEvent(new GetSelfWorkLocalJsonMqEvent(appId, loginName, timestamp, clientId)); } } break; case WsMqKeyword.SelfWorkLocalJsonRoutingKey: { string loginName = ea.BasicProperties.ReadHeaderString(MqKeyword.LoginNameHeaderName); DateTime timestamp = Timestamp.FromTimestamp(ea.BasicProperties.Timestamp.UnixTime); string appId = ea.BasicProperties.AppId; if (ea.BasicProperties.ReadHeaderGuid(MqKeyword.ClientIdHeaderName, out Guid clientId)) { string json = OperationMqBodyUtil.GetSelfWorkLocalJsonMqReceiveBody(ea.Body); VirtualRoot.RaiseEvent(new LocalJsonMqEvent(appId, loginName, timestamp, clientId, json)); } } break; case WsMqKeyword.SaveSelfWorkLocalJsonRoutingKey: { string loginName = ea.BasicProperties.ReadHeaderString(MqKeyword.LoginNameHeaderName); DateTime timestamp = Timestamp.FromTimestamp(ea.BasicProperties.Timestamp.UnixTime); string appId = ea.BasicProperties.AppId; if (ea.BasicProperties.ReadHeaderGuid(MqKeyword.ClientIdHeaderName, out Guid clientId)) { WorkRequest request = OperationMqBodyUtil.GetSaveSelfWorkLocalJsonMqReceiveBody(ea.Body); VirtualRoot.RaiseEvent(new SaveSelfWorkLocalJsonMqEvent(appId, loginName, timestamp, clientId, request)); } } break; case WsMqKeyword.GetGpuProfilesJsonRoutingKey: { string loginName = ea.BasicProperties.ReadHeaderString(MqKeyword.LoginNameHeaderName); DateTime timestamp = Timestamp.FromTimestamp(ea.BasicProperties.Timestamp.UnixTime); string appId = ea.BasicProperties.AppId; if (ea.BasicProperties.ReadHeaderGuid(MqKeyword.ClientIdHeaderName, out Guid clientId)) { VirtualRoot.RaiseEvent(new GetGpuProfilesJsonMqEvent(appId, loginName, timestamp, clientId)); } } break; case WsMqKeyword.GpuProfilesJsonRoutingKey: { string loginName = ea.BasicProperties.ReadHeaderString(MqKeyword.LoginNameHeaderName); DateTime timestamp = Timestamp.FromTimestamp(ea.BasicProperties.Timestamp.UnixTime); string appId = ea.BasicProperties.AppId; if (ea.BasicProperties.ReadHeaderGuid(MqKeyword.ClientIdHeaderName, out Guid clientId)) { string json = OperationMqBodyUtil.GetGpuProfilesJsonMqReceiveBody(ea.Body); VirtualRoot.RaiseEvent(new GpuProfilesJsonMqEvent(appId, loginName, timestamp, clientId, json)); } } break; case WsMqKeyword.SaveGpuProfilesJsonRoutingKey: { string loginName = ea.BasicProperties.ReadHeaderString(MqKeyword.LoginNameHeaderName); DateTime timestamp = Timestamp.FromTimestamp(ea.BasicProperties.Timestamp.UnixTime); string appId = ea.BasicProperties.AppId; if (ea.BasicProperties.ReadHeaderGuid(MqKeyword.ClientIdHeaderName, out Guid clientId)) { string json = OperationMqBodyUtil.GetSaveGpuProfilesJsonMqReceiveBody(ea.Body); VirtualRoot.RaiseEvent(new SaveGpuProfilesJsonMqEvent(appId, loginName, timestamp, clientId, json)); } } break; case WsMqKeyword.SetAutoBootStartRoutingKey: { string loginName = ea.BasicProperties.ReadHeaderString(MqKeyword.LoginNameHeaderName); DateTime timestamp = Timestamp.FromTimestamp(ea.BasicProperties.Timestamp.UnixTime); string appId = ea.BasicProperties.AppId; if (ea.BasicProperties.ReadHeaderGuid(MqKeyword.ClientIdHeaderName, out Guid clientId)) { SetAutoBootStartRequest body = OperationMqBodyUtil.GetSetAutoBootStartMqReceiveBody(ea.Body); if (body != null) { VirtualRoot.RaiseEvent(new SetAutoBootStartMqEvent(appId, loginName, timestamp, clientId, body)); } } } break; case WsMqKeyword.RestartWindowsRoutingKey: { string loginName = ea.BasicProperties.ReadHeaderString(MqKeyword.LoginNameHeaderName); DateTime timestamp = Timestamp.FromTimestamp(ea.BasicProperties.Timestamp.UnixTime); string appId = ea.BasicProperties.AppId; if (ea.BasicProperties.ReadHeaderGuid(MqKeyword.ClientIdHeaderName, out Guid clientId)) { VirtualRoot.RaiseEvent(new RestartWindowsMqEvent(appId, loginName, timestamp, clientId)); } } break; case WsMqKeyword.ShutdownWindowsRoutingKey: { string loginName = ea.BasicProperties.ReadHeaderString(MqKeyword.LoginNameHeaderName); DateTime timestamp = Timestamp.FromTimestamp(ea.BasicProperties.Timestamp.UnixTime); string appId = ea.BasicProperties.AppId; if (ea.BasicProperties.ReadHeaderGuid(MqKeyword.ClientIdHeaderName, out Guid clientId)) { VirtualRoot.RaiseEvent(new ShutdownWindowsMqEvent(appId, loginName, timestamp, clientId)); } } break; case WsMqKeyword.UpgradeNTMinerRoutingKey: { string loginName = ea.BasicProperties.ReadHeaderString(MqKeyword.LoginNameHeaderName); DateTime timestamp = Timestamp.FromTimestamp(ea.BasicProperties.Timestamp.UnixTime); string appId = ea.BasicProperties.AppId; if (ea.BasicProperties.ReadHeaderGuid(MqKeyword.ClientIdHeaderName, out Guid clientId)) { string ntminerFileName = OperationMqBodyUtil.GetUpgradeNTMinerMqReceiveBody(ea.Body); if (!string.IsNullOrEmpty(ntminerFileName)) { VirtualRoot.RaiseEvent(new UpgradeNTMinerMqEvent(appId, loginName, timestamp, clientId, ntminerFileName)); } } } break; case MqKeyword.StartMineRoutingKey: { string loginName = ea.BasicProperties.ReadHeaderString(MqKeyword.LoginNameHeaderName); DateTime timestamp = Timestamp.FromTimestamp(ea.BasicProperties.Timestamp.UnixTime); string appId = ea.BasicProperties.AppId; if (ea.BasicProperties.ReadHeaderGuid(MqKeyword.ClientIdHeaderName, out Guid clientId)) { Guid workId = OperationMqBodyUtil.GetStartMineMqReceiveBody(ea.Body); VirtualRoot.RaiseEvent(new StartMineMqEvent(appId, loginName, timestamp, clientId, workId)); } } break; case MqKeyword.StartWorkMineRoutingKey: { string loginName = ea.BasicProperties.ReadHeaderString(MqKeyword.LoginNameHeaderName); DateTime timestamp = Timestamp.FromTimestamp(ea.BasicProperties.Timestamp.UnixTime); string appId = ea.BasicProperties.AppId; if (ea.BasicProperties.ReadHeaderGuid(MqKeyword.ClientIdHeaderName, out Guid clientId)) { WorkRequest request = OperationMqBodyUtil.GetStartWorkMineMqReceiveBody(ea.Body); VirtualRoot.RaiseEvent(new StartWorkMineMqEvent(appId, loginName, timestamp, clientId, request)); } } break; case WsMqKeyword.StopMineRoutingKey: { string loginName = ea.BasicProperties.ReadHeaderString(MqKeyword.LoginNameHeaderName); DateTime timestamp = Timestamp.FromTimestamp(ea.BasicProperties.Timestamp.UnixTime); string appId = ea.BasicProperties.AppId; if (ea.BasicProperties.ReadHeaderGuid(MqKeyword.ClientIdHeaderName, out Guid clientId)) { VirtualRoot.RaiseEvent(new StopMineMqEvent(appId, loginName, timestamp, clientId)); } } break; default: return(false); } return(true); }