void _client_ConversationHistoryLoaded(object sender, List <Conversation> e) { // associate contact list and last active conversation // only 1 to 1 conversation supported if (ActiveContacts == null) { ActiveContacts = new ObservableDictionary <string, ActiveContactModel>(); } string participant_id; foreach (Conversation conversation in e) { participant_id = conversation.Participants.Keys.FirstOrDefault(c => c != CurrentUser.Id); if (ActiveContacts.ContainsKey(participant_id)) { ActiveContacts[participant_id].Conversation = conversation; } else { ActiveContacts.Add(participant_id, new ActiveContactModel() { Conversation = conversation }); } } _conversationCache = e.ToDictionary(c => c.Id, c => new ConversationWindowManager(new ConversationViewModel(c, _client))); }
void _client_ContactInformationReceived(object sender, User e) { if (ActiveContacts.ContainsKey(e.Id)) { ActiveContacts[e.Id].Contact = e; } else { ActiveContacts.Add(e.Id, new ActiveContactModel() { Contact = e }); } }