internal void OnUpdatedChannelInfo(string channelsXml) { var serializer = new XmlSerializer(typeof(ChannelList)); using (StringReader reader = new StringReader(channelsXml)) { var newChannels = (ChannelList)serializer.Deserialize(reader); foreach (Channel channel in newChannels.Channels) { channel.Connection = this.Connection; } Channels = newChannels.Channels; UpdatedChannels?.Invoke(this, EventArgs.Empty); } }
internal void OnUpdatedServerInfo(List <string> channels) { Channels = channels.Select(s => { var channelData = s.Split(new [] { ' ' }, StringSplitOptions.RemoveEmptyEntries); if (channelData.Length > 2 && int.TryParse(channelData[0], out var id) && Enum.TryParse($"m{channelData[1]}", true, out VideoMode videoMode)) { return new Channel(id, videoMode) { Connection = this.Connection } } ; return(null); }) .Where(c => c != null) .ToArray(); UpdatedChannels?.Invoke(this, EventArgs.Empty); }