public void DispatchEvent(object sender, IEvent evt) { if (evt == null) { throw new ArgumentNullException(nameof(evt)); } lock (Sync) { Logger.Debug(evt); Sessions.HandleEvent(sender, evt); Users.HandleEvent(sender, evt); Channels.HandleEvent(sender, evt); ChannelUsers.HandleEvent(sender, evt); Messages.HandleEvent(sender, evt); } }