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); } }
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); } }
public void DisplayMessage(ChatMessage message) { if (message == null) { throw new ArgumentNullException("message"); } chatBox.Items.Add(message.UserName + " says: " + message.Message); }