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();
        }
Пример #3
0
 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();
        }