Exemplo n.º 1
0
 /// <summary>
 /// neue Nachricht anzeigen
 /// </summary>
 /// <param name="sender"></param>
 /// <param name="e"></param>
 void cMessageReceived(object sender, CReceivedEventArgs e)
 {
     Application.Current.Dispatcher.Invoke((Action) delegate
     {
         // Nachricht wird nur angezeigt, wenn man sich im selben Chat befindet
         if (lvContacts.SelectedItem != null)
         {
             if (e.From == ((UserControlContactItem)lvContacts.SelectedItem).Email)
             {
                 UserControlMessageReceived messagereceived = new UserControlMessageReceived(e.Message, e.Date);
                 splChat.Children.Add(messagereceived);
                 cClient.MessagesRead(((UserControlContactItem)lvContacts.SelectedItem).Email);
                 // TODO: LoadChat aktualisert den ganzen Chat. Benötigt wird eine Methode, die die Nachrichten als gelesen markiert. (CHECK)
             }
         }
     });
 }
Exemplo n.º 2
0
        private void CClient_ChatReceived(object sender, CChatContentEventArgs e)
        {
            // Chat wird nur komplett aktualisert, wenn man einen neuen Kontakt auswählt
            if (selectedContact[0] != selectedContact[1])
            {
                Application.Current.Dispatcher.Invoke((Action) delegate
                {
                    splChat.Children.Clear();            //Stackpanel säubern
                });
                DataTable tmp = e.DtChat;

                foreach (DataRow row in tmp.Rows)
                {
                    Application.Current.Dispatcher.Invoke((Action) delegate
                    {
                        //TODO: Nach einer anderen Lösungsmöglichkeit recherchieren
                        if (row["main_email"].ToString() == "Sie")
                        {
                            UserControlMessageSent messagesent = new UserControlMessageSent(row["message"].ToString(), row["thetime"].ToString());
                            splChat.Children.Add(messagesent);
                        }
                        else
                        {
                            UserControlMessageReceived messagereceived = new UserControlMessageReceived(row["message"].ToString(), row["thetime"].ToString());
                            splChat.Children.Add(messagereceived);
                        }
                    });
                }

                // Nach unten scrollen
                Application.Current.Dispatcher.Invoke((Action) delegate
                {
                    chatViewScroller.ScrollToBottom();
                });
            }
        }