private async void ReceiveMessages(object sender, EventArgs e) { IEnumerable <Message> messages = (await clientService.ReceiveMessages()).OrderBy(x => x.PostDate); IEnumerable <string> interlocutors = ChatTabs.Select(x => x.Interlocutor); foreach (Message message in messages) { if (!interlocutors.Contains(message.Sender)) { ChatTabs.Add(new ChatTabViewModel(message.Sender, clientService)); } ChatTabs.Single(x => x.Interlocutor == message.Sender).Messages.Add(message); } }
private bool AddChat() { AddChatViewModel acvm = new AddChatViewModel(); AddChatWindow acw = new AddChatWindow(acvm); if (acw.ShowDialog() == true) { if (chatManager.AddChat(acvm.ChatName, acvm.Password)) { ChatTab chatTab = new ChatTab(acvm.ChatName); ChatTabs.Add(chatTab); return(true); } } return(false); }
public bool AddMessage(string chatTabName, ChatMessage message) { lock (_locker) { var existing = ChatTabs.Where(c => c.Name == chatTabName); if (existing.Count() == 0) { ChatTab chatTab = new ChatTab(chatTabName); chatTab.ChatMessages.Add(message); ChatTabs.Add(chatTab); } else { existing.Select(c => { c.ChatMessages.Add(message); return(c); }).ToList(); } } return(true); }