protected void PreviewMessage(AsynchronousMessageQueue queue, SystemMessage message) { if (message.ChannelName != UserMessaging.CHANNEL) { return; } try { UserMessaging.MessageType messageType = (UserMessaging.MessageType)message.MessageType; switch (messageType) { case UserMessaging.MessageType.UserChanged: UserChanged?.Invoke(this, EventArgs.Empty); break; case UserMessaging.MessageType.RequestRestrictions: RequestRestrictions?.Invoke(this, EventArgs.Empty); break; } } catch (Exception e) { ServiceRegistration.Get <ILogger>().Error("Error handling UserMessage '{0}'", e, message.MessageType); } }
protected void OnMessageReceived(AsynchronousMessageQueue queue, SystemMessage message) { if (message.ChannelName == UserMessaging.CHANNEL) { UserMessaging.MessageType messageType = (UserMessaging.MessageType)message.MessageType; switch (messageType) { // If the user has been changed, refresh the settings in every case. case UserMessaging.MessageType.UserChanged: RefreshAsync(); break; } } if (message.ChannelName == SettingsManagerMessaging.CHANNEL) { SettingsManagerMessaging.MessageType messageType = (SettingsManagerMessaging.MessageType)message.MessageType; switch (messageType) { case SettingsManagerMessaging.MessageType.SettingsChanged: Type settingsType = (Type)message.MessageData[SettingsManagerMessaging.SETTINGSTYPE]; // If our contained Type has been changed, clear the cache and reload it if (typeof(T) == settingsType) { Refresh(); } break; } } }