Example #1
0
        private void processChannels(ChatChannels chatChannels)
        {
            List <string> channels = new List <string> ();

            foreach (ChatChannel chatChannel in chatChannels.chatChannel)
            {
                channels.Add(chatChannel.name);
                subscribers [chatChannel.name] = chatChannel.subscribers.subscriberId;
            }

            foreach (string name in channels.Except(channelSubscriptions))
            {
                channelSubscriptions.Add(name);
                if (name.StartsWith("priv_"))
                {
                    privateChannelSubscriptions.Add(name);
                }

                if (channelJoined != null)
                {
                    channelJoined(name);
                }
            }

            List <string> channelsToRemove = channelSubscriptions.Except(channels).ToList();

            foreach (string name in channelsToRemove)
            {
                channelSubscriptions.Remove(name);
                if (name.StartsWith("priv_"))
                {
                    privateChannelSubscriptions.Remove(name);
                }

                if (channelLeft != null)
                {
                    channelLeft(name);
                }
            }
        }
Example #2
0
        private void processChannels(ChatChannels chatChannels)
        {
            List<string> channels = new List<string> ();
            foreach (ChatChannel chatChannel in chatChannels.chatChannel) {
                channels.Add (chatChannel.name);
                subscribers [chatChannel.name] = chatChannel.subscribers.subscriberId;
            }

            foreach (string name in channels.Except(channelSubscriptions)) {
                channelSubscriptions.Add (name);
                if (name.StartsWith ("priv_")) {
                    privateChannelSubscriptions.Add (name);
                }

                if (channelJoined != null) {
                    channelJoined (name);
                }
            }

            List<string> channelsToRemove = channelSubscriptions.Except (channels).ToList ();
            foreach (string name in channelsToRemove) {
                channelSubscriptions.Remove (name);
                if (name.StartsWith ("priv_")) {
                    privateChannelSubscriptions.Remove (name);
                }

                if (channelLeft != null) {
                    channelLeft (name);
                }
            }
        }