Example #1
0
        //Guild and GuildChannel Stuff
        public async void ChannelSelectionChanged(object s, ListViewItemSelectionChangedEventArgs e)
        {
            if (e.IsSelected)
            {
                Regex             r = new Regex(@"\[(.*?)\]");
                SocketTextChannel SelectedChannel = Global.Kuro.Client.Guilds.Where(z => z.Name.Trim() == r.Match(e.Item.Text.Trim()).Groups[1].Value.Trim()).FirstOrDefault().Channels.Where(k => k.Name == e.Item.Text.Substring(e.Item.Text.LastIndexOf("#") + 1)).FirstOrDefault() as SocketTextChannel;
                if (SelectedChannels.Count != 0)
                {
                    int Findindex = SelectedChannels.FindIndex(k => k.Guild.Name == SelectedChannel.Guild.Name);
                    if (Findindex > -1)
                    {
                        SelectedChannels[Findindex] = SelectedChannel;
                    }
                    else
                    {
                        SelectedChannels.Add(SelectedChannel);
                    }
                }
                else
                {
                    SelectedChannels.Add(SelectedChannel);
                }
                Program.UserInterface.Text = "[" + SelectedChannel.Guild.Name + "] " + "#" + SelectedChannel.Name;
                Program.UserInterface.Refresh();
                IEnumerable <IMessage> messages = await(Global.Kuro.Client.GetChannel(SelectedChannel.Id) as SocketTextChannel).GetMessagesAsync(60).Flatten <IMessage>();
                await ControlHandler.ClearAsync(SelectedChannel.Guild.Name);

                for (int i = messages.Count() - 1; i >= 0; i--)
                {
                    IMessage message = messages.ElementAt(i);
                    string   Guild   = (message.Channel as SocketGuildChannel).Guild.Name;
                    await ControlHandler.LogCacheAsync("[" + message.Timestamp.LocalDateTime + "] " + "#" + message.Channel.Name + " | " + message.Author + ": " + (message.Attachments.Count != 0 ? "[" + message.Attachments.FirstOrDefault().Url + "] " + message.Content : message.Content), Guild);
                }
            }
        }