private void HelloMessage(ChatUser cu = null) { if (cu != null) { UserProfile.Destination = cu.Sender; } SignedMessage signedUserProfileMessage = new SignedMessage(UserProfile.ToJson()); userModule.SendMessage <string>(signedUserProfileMessage.ToJson(), messageModule.Id.ToString()); }
/// <summary> /// Send message to the channel /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void Send(object sender, RoutedEventArgs e) { List <ChatUser> selectedToSend = new List <ChatUser>(); foreach (ChatUser cu in Book.UserList) { if (cu.Selected) { selectedToSend.Add(cu); } } this.Dispatcher.Invoke(() => { Message MessageToSend = null; if (UploadReady) { //send the uploaded file with the text message MessageToSend = Uploaded; MessageToSend.Sender = messageModule.Id; MessageToSend.StringContent = MessageText.Text; } else { //prepare a text message MessageToSend = new Message() { Sender = messageModule.Id, Kind = MessageKindType.STRING, StringContent = MessageText.Text }; } if (selectedToSend.Count == 0) { SignedMessage signedTextMessage = new SignedMessage(MessageToSend.ToJson()); messageModule.SendMessage <string>(signedTextMessage.ToJson()); } else { bool sentToMyself = false; foreach (ChatUser cu in selectedToSend) { MessageToSend.Destination = cu.Sender; SignedMessage signedTextMessage = new SignedMessage(MessageToSend.ToJson()); messageModule.SendMessage <string>(signedTextMessage.ToJson()); if (cu.Sender == UserProfile.Sender) { sentToMyself = true; } } if (!sentToMyself) { //send always a copy of the encrypted message to myself MessageToSend.Destination = UserProfile.Sender; SignedMessage signedTextMessage = new SignedMessage(MessageToSend.ToJson()); messageModule.SendMessage <string>(signedTextMessage.ToJson()); } } MessageText.Text = string.Empty; Uploaded = null; UploadReady = false; }); }