Пример #1
0
        public void ProcessSimpleMessage(ChatMessage chatMessage)
        {
            if (chatMessage == null || string.IsNullOrEmpty(chatMessage.UserName) || chatMessage.UserUri == null)
            {
                return;
            }

            PeerUser peerUserObject = this.simpleChat.GetUser(chatMessage.UserUri);
            if (peerUserObject == null)
            {
                // User is not in internal store, update container and show message               
                peerUserObject = new PeerUser(chatMessage.UserName, new EndpointAddress(chatMessage.UserUri));
                this.simpleChat.AddUser(peerUserObject);

                peerUserObject.ChatWindow = new ChatWindow(this.simpleChat, peerUserObject);                
            }

            if (peerUserObject.ChatWindowExists)
            {
                // User is in internal store and has an open chat window
                peerUserObject.ChatWindow.DisplayMessage(chatMessage);
                ShowChatWindow(peerUserObject);
            }
            else
            {
                // User is in internal store but no chat window is open                
                peerUserObject.ChatWindow = new ChatWindow(this.simpleChat, peerUserObject);
                peerUserObject.ChatWindow.DisplayMessage(chatMessage);
                ShowChatWindow(peerUserObject);
            }
        }
Пример #2
0
 private void SendMessage_Click(object sender, EventArgs e)
 {
     try
     {
         ChatMessage sentMsg = new ChatMessage(this.simpleChatOwner.UserName, chatText.Text, this.simpleChatOwner.LocalAddress);
         this.chatClient.ProcessSimpleMessage(sentMsg);
         this.DisplayMessage(sentMsg);
         this.chatText.Clear();
     }
     catch (CommunicationException cex)
     {
         ((ICommunicationObject)chatClient).Abort();
         MessageBox.Show(
             string.Format(
                 CultureInfo.CurrentCulture,
                 Resources.UserNotAvailableMessage,
                 this.peerUser.UserName,
                 cex.Message),
                 this.Text,
                 MessageBoxButtons.OK,
                 MessageBoxIcon.Information,
                 MessageBoxDefaultButton.Button1,
                 (MessageBoxOptions)0);
         this.simpleChatOwner.RemoveUser(this.peerUser.Address.Uri);
         this.Close();
     }
     catch (Exception ex)
     {
         MessageBox.Show(
             string.Format(CultureInfo.CurrentCulture, Resources.UnknownErrorMessage, ex.Message),
                 this.Text,
                 MessageBoxButtons.OK,
                 MessageBoxIcon.Information,
                 MessageBoxDefaultButton.Button1,
                 (MessageBoxOptions)0);
     }
 }
Пример #3
0
        public void DisplayMessage(ChatMessage message)
        {
            if (message == null)
            {
                throw new ArgumentNullException("message");
            }

            chatBox.Items.Add(message.UserName + " says: " + message.Message);
        }