private void OnConversationUpdated(object sender, ConversationUpdatedEventArgs e) { if (ServiceManager.Instance.Dispatcher.Thread != Thread.CurrentThread) { ServiceManager.Instance.Dispatcher.BeginInvoke(DispatcherPriority.Normal, new EventHandler<ConversationUpdatedEventArgs>(OnConversationUpdated), sender, new object[] { e }); return; } if (_contactViewModel != null && _contactViewModel.Contact == e.Conversation.Contact ) { if (MessagesListView != null) MessagesListView.Refresh(); if (ConversationUpdated != null) ConversationUpdated(this, EventArgs.Empty); } }
private void OnChatRoomUpdated(object sender, ConversationUpdatedEventArgs e) { if (!e.Conversation.IsRttChat) return; if (ServiceManager.Instance.Dispatcher.Thread != Thread.CurrentThread) { ServiceManager.Instance.Dispatcher.BeginInvoke(DispatcherPriority.Normal, new EventHandler<ConversationUpdatedEventArgs>(OnChatRoomUpdated), sender, new object[] {e}); return; } if (!e.Conversation.Equals(this.Chat)) return; try { if (MessagesListView != null && MessagesListView.SourceCollection != null) MessagesListView.Refresh(); } catch (Exception) { } RaiseConversationChanged(); }
public void OnConversationUpdated(VATRPChat chat, bool allowUpdate) { if (chat != null) { if (this.ConversationUpdated != null) { var args = new ConversationUpdatedEventArgs(chat); args.AllowToChangeUnreadMessageCounter = allowUpdate; this.ConversationUpdated(this, args); } } }
private void OnChatRoomUpdated(object sender, ConversationUpdatedEventArgs e) { if (e.Conversation.IsRttChat) return; if (ServiceManager.Instance.Dispatcher.Thread != Thread.CurrentThread) { ServiceManager.Instance.Dispatcher.BeginInvoke(DispatcherPriority.Normal, new EventHandler<ConversationUpdatedEventArgs>(OnChatRoomUpdated), sender, new object[] { e }); return; } if (ChatViewContact != null && ChatViewContact.Contact == e.Conversation.Contact) { try { if (MessagesListView != null && MessagesListView.SourceCollection != null) MessagesListView.Refresh(); } catch (Exception) { } RaiseConversationChanged(); } else { foreach (var contactVM in this.Contacts) { if (contactVM.Contact == e.Conversation.Contact) { contactVM.LastUnreadMessageTime = e.Conversation.LastUnreadMessageTime; } } } RefreshContactsList(); }