Gablarski.Server.ServerChannelHandler.ChannelsProviderOnChannelsUpdated C# (CSharp) Method

ChannelsProviderOnChannelsUpdated() private method

private ChannelsProviderOnChannelsUpdated ( object sender, EventArgs args ) : void
sender object
args System.EventArgs
return void
        private void ChannelsProviderOnChannelsUpdated(object sender, EventArgs args)
        {
            var channels = context.ChannelsProvider.GetChannels();
            var channelIds = new HashSet<int> (channels.Select (c => c.ChannelId));

            foreach (UserInfo user in context.Users.Where (u => !channelIds.Contains (u.CurrentChannelId)))
                context.Users.Move (user, context.ChannelsProvider.DefaultChannel);

            foreach (IConnection connection in context.Connections)
                connection.SendAsync (new ChannelListMessage (channels, context.ChannelsProvider.DefaultChannel));
        }