protected sealed override Dictionary <string, Action <BasicDeliverEventArgs> > GetPaths() { var paths = new Dictionary <string, Action <BasicDeliverEventArgs> > { [MqKeyword.UserAddedRoutingKey] = ea => { string loginName = UserMqBodyUtil.GetLoginNameMqReceiveBody(ea.Body); string appId = ea.BasicProperties.AppId; VirtualRoot.RaiseEvent(new UserAddedMqEvent(appId, loginName, ea.GetTimestamp())); }, [MqKeyword.UserUpdatedRoutingKey] = ea => { string loginName = UserMqBodyUtil.GetLoginNameMqReceiveBody(ea.Body); string appId = ea.BasicProperties.AppId; VirtualRoot.RaiseEvent(new UserUpdatedMqEvent(appId, loginName, ea.GetTimestamp())); }, [MqKeyword.UserRemovedRoutingKey] = ea => { string loginName = UserMqBodyUtil.GetLoginNameMqReceiveBody(ea.Body); string appId = ea.BasicProperties.AppId; VirtualRoot.RaiseEvent(new UserRemovedMqEvent(appId, loginName, ea.GetTimestamp())); }, [MqKeyword.UserEnabledRoutingKey] = ea => { string loginName = UserMqBodyUtil.GetLoginNameMqReceiveBody(ea.Body); string appId = ea.BasicProperties.AppId; VirtualRoot.RaiseEvent(new UserEnabledMqEvent(appId, loginName, ea.GetTimestamp())); }, [MqKeyword.UserDisabledRoutingKey] = ea => { string loginName = UserMqBodyUtil.GetLoginNameMqReceiveBody(ea.Body); string appId = ea.BasicProperties.AppId; VirtualRoot.RaiseEvent(new UserDisabledMqEvent(appId, loginName, ea.GetTimestamp())); }, [MqKeyword.UserPasswordChangedRoutingKey] = ea => { string loginName = UserMqBodyUtil.GetLoginNameMqReceiveBody(ea.Body); string appId = ea.BasicProperties.AppId; VirtualRoot.RaiseEvent(new UserPasswordChangedMqEvent(appId, loginName, ea.GetTimestamp())); }, // 该事件通常不会发生,因为用户注册的时候已经生成了RSA公私钥对了,RSA非空时不会更新 [MqKeyword.UserRSAKeyUpdatedRoutingKey] = ea => { string loginName = UserMqBodyUtil.GetLoginNameMqReceiveBody(ea.Body); string appId = ea.BasicProperties.AppId; VirtualRoot.RaiseEvent(new UserRSAKeyUpdatedMqEvent(appId, loginName, ea.GetTimestamp())); } }; var dic = DoGetPaths(); if (dic != null) { foreach (var kv in dic) { paths[kv.Key] = kv.Value; } } return(paths); }
public override bool Go(BasicDeliverEventArgs ea) { bool baseR = DoGo(ea); bool r = true; switch (ea.RoutingKey) { case MqKeyword.UserAddedRoutingKey: { string loginName = UserMqBodyUtil.GetLoginNameMqReceiveBody(ea.Body); DateTime timestamp = Timestamp.FromTimestamp(ea.BasicProperties.Timestamp.UnixTime); string appId = ea.BasicProperties.AppId; VirtualRoot.RaiseEvent(new UserAddedMqMessage(appId, loginName, timestamp)); } break; case MqKeyword.UserUpdatedRoutingKey: { string loginName = UserMqBodyUtil.GetLoginNameMqReceiveBody(ea.Body); DateTime timestamp = Timestamp.FromTimestamp(ea.BasicProperties.Timestamp.UnixTime); string appId = ea.BasicProperties.AppId; VirtualRoot.RaiseEvent(new UserUpdatedMqMessage(appId, loginName, timestamp)); } break; case MqKeyword.UserRemovedRoutingKey: { string loginName = UserMqBodyUtil.GetLoginNameMqReceiveBody(ea.Body); DateTime timestamp = Timestamp.FromTimestamp(ea.BasicProperties.Timestamp.UnixTime); string appId = ea.BasicProperties.AppId; VirtualRoot.RaiseEvent(new UserRemovedMqMessage(appId, loginName, timestamp)); } break; case MqKeyword.UserEnabledRoutingKey: { string loginName = UserMqBodyUtil.GetLoginNameMqReceiveBody(ea.Body); DateTime timestamp = Timestamp.FromTimestamp(ea.BasicProperties.Timestamp.UnixTime); string appId = ea.BasicProperties.AppId; VirtualRoot.RaiseEvent(new UserEnabledMqMessage(appId, loginName, timestamp)); } break; case MqKeyword.UserDisabledRoutingKey: { string loginName = UserMqBodyUtil.GetLoginNameMqReceiveBody(ea.Body); DateTime timestamp = Timestamp.FromTimestamp(ea.BasicProperties.Timestamp.UnixTime); string appId = ea.BasicProperties.AppId; VirtualRoot.RaiseEvent(new UserDisabledMqMessage(appId, loginName, timestamp)); } break; case MqKeyword.UserPasswordChangedRoutingKey: { string loginName = UserMqBodyUtil.GetLoginNameMqReceiveBody(ea.Body); DateTime timestamp = Timestamp.FromTimestamp(ea.BasicProperties.Timestamp.UnixTime); string appId = ea.BasicProperties.AppId; VirtualRoot.RaiseEvent(new UserPasswordChangedMqMessage(appId, loginName, timestamp)); } break; case MqKeyword.UserRSAKeyUpdatedRoutingKey: { string loginName = UserMqBodyUtil.GetLoginNameMqReceiveBody(ea.Body); DateTime timestamp = Timestamp.FromTimestamp(ea.BasicProperties.Timestamp.UnixTime); string appId = ea.BasicProperties.AppId; VirtualRoot.RaiseEvent(new UserRSAKeyUpdatedMqMessage(appId, loginName, timestamp)); } break; default: r = false; break; } return(baseR || r); }