private void Send_Click(object sender, EventArgs e) { if (string.IsNullOrWhiteSpace(txtMessage.Text)) { return; } if (listUser.SelectedItem != null) { if (listUser.SelectedItem is User receiver) { SendTextMessage sendTextMessage = new SendTextMessage(receiver.Email, txtMessage.Text); if (CConnectionController.TrySendPackage(sendTextMessage, CConnectionController.ServerAddress)) { CDataController.Messages.Add(new Message(CConnectionController.LoginUser.Email, receiver.Email, DateTime.Now, txtMessage.Text)); UpdateMessage(); WaitForFeedback = true; timer.Enabled = true; } else { MessageBox.Show("Fehler beim Senden!"); } } } }
private static void HandlePackage(SendTextMessage sendTextMessage, string clientAddress) { DateTime?sendTime; if (!SDBController.ConnectionAvailable()) { SConnectionController.SendPackage(new Feedback(FeedbackCode.MessageSendFailed), clientAddress); return; } if (!SDBController.TryGetUser(clientAddress, out User user)) { SConnectionController.SendPackage(new Feedback(FeedbackCode.InvalidSession), clientAddress); return; } if (!SDBController.TryGetIPAddressByEmail(sendTextMessage.EMail, out string ipAddress)) { sendTime = null; } else { if (string.IsNullOrEmpty(ipAddress)) { sendTime = null; } else { if (SConnectionController.SendPackage(new ReceiveTextMessage(sendTextMessage.EMail, sendTextMessage.Text), ipAddress)) { sendTime = DateTime.Now; } else { sendTime = null; } } } if (SDBController.TryAddMessage(user.Email, sendTextMessage.EMail, sendTextMessage.Text, sendTime)) { SConnectionController.SendPackage(new Feedback(FeedbackCode.MessageSendSuccess), clientAddress); } else { SConnectionController.SendPackage(new Feedback(FeedbackCode.MessageSendFailed), clientAddress); } }