public void ChangeChannel(string channel) { this.CurrentChannel = channel; Application.SynchronizationContext.Post(_ => { messageAdapter.Clear(); if (FullHistory.ContainsKey(channel)) { FullHistory[channel].ForEach(msg => { messageAdapter.Add(msg); }); } }, null); }
public void AppendMessage(ChatMessage chatMessage) { if (!FullHistory.ContainsKey(chatMessage.Channel)) { FullHistory.Add(chatMessage.Channel, new List <ChatMessage>()); } FullHistory[chatMessage.Channel].Add(chatMessage); if (chatMessage.Channel == this.CurrentChannel) { Application.SynchronizationContext.Post(_ => { messageAdapter.Add(chatMessage); messageAdapter.NotifyDataSetChanged(); }, null); } }
void FilterItems() { Console.WriteLine("Filtering Items by " + _SelectedFilter); switch (SelectedFilter) { case "All": FilteredHistory.ReplaceRange(FullHistory); break; case "Week": FilteredHistory.ReplaceRange(FullHistory.Where(a => a.StartTime.Date >= DateTime.Now.Date.AddDays(-7) && a.StartTime.Date <= DateTime.Now.Date)); break; case "Month": FilteredHistory.ReplaceRange(FullHistory.Where(a => a.StartTime.Date >= DateTime.Now.Date.AddMonths(-1) && a.StartTime.Date <= DateTime.Now.Date)); break; case "Today": FilteredHistory.ReplaceRange(FullHistory.Where(a => a.StartTime.Date == DateTime.Now.Date)); break; } }