//Добавление нового сообщения private void AddNewMessage(object sender, RoutedEventArgs e) { contacts[ContactListIndex].MessageHistory.Add(new Message(sendMessage_textBox.Text, DateTime.Now.ToString("t"), true)); chatBody_listBox.ItemsSource = null; //обнуляем listbox, иначе не работает следующая строка chatBody_listBox.ItemsSource = contacts[ContactListIndex].MessageHistory; //обновление списка сообщений в форме chatBody_scroll.ScrollToEnd(); Net.SendMessage($"NewMessage{MyContact.userName_textBlock.Text}&{contacts[ContactListIndex].userName_textBlock.Text}&{sendMessage_textBox.Text}&{DateTime.Now.ToString("d")}&{DateTime.Now.ToString("t")}", stream); }
public Messanger(string login) { InitializeComponent(); contacts = new List <Contact>(); DBconnection dBconnection = new DBconnection(); dBconnection.ConnectDB(); //Заполнение данных MyContact string query = $"SELECT DISTINCT * FROM Account WHERE login = '******'"; var result = dBconnection.SelectQuery(query); if (result.Read()) { string name = result.GetString(1); string status = result.GetString(4); MyContact.userName_textBlock.Text = name; MyContact.userTitle_textBlock.Text = status; } dBconnection.ForceClose(); //Заполнение ContactList List <string> contactsString = new List <string>(); query = $"SELECT * FROM Messages WHERE sender = '{login}' OR recepient = '{login}'"; dBconnection.ConnectDB(); result = dBconnection.SelectQuery(query); while (result.Read()) { if (result.GetString(1) == login) { if (!contactsString.Contains(result.GetString(2))) { contactsString.Add(result.GetString(2)); } } else if (result.GetString(2) == login) { if (!contactsString.Contains(result.GetString(1))) { contactsString.Add(result.GetString(1)); } } } dBconnection.ForceClose(); //Добавление контактам сообщения List <Message> tempMessages = new List <Message>(); foreach (var contactString in contactsString) { dBconnection.ConnectDB(); query = $"SELECT * FROM Messages WHERE (sender = '{contactString}' AND recepient = '{login}') OR (sender = '{login}' AND recepient = '{contactString}');"; result = dBconnection.SelectQuery(query); while (result.Read()) { if (result.GetString(1) == contactString) { tempMessages.Add(new Message(result.GetString(3), result.GetString(5).Substring(0, 5), false)); } else if (result.GetString(2) == contactString) { tempMessages.Add(new Message(result.GetString(3), result.GetString(5).Substring(0, 5), true)); } } contacts.Add(new Contact(new List <Message>(tempMessages), contactString, "")); //создание контакта с сообщениями tempMessages.Clear(); dBconnection.ForceClose(); } ContactList_listBox.ItemsSource = contacts; //обновление списка контактов на форме //Подключение к серверу и передача ему login client = new TcpClient(); client.Connect(host, port); //подключение клиента stream = client.GetStream(); // получаем поток Net.SendMessage(login, stream); ReceiveMessages(stream, client); Label_ServerConnect.Foreground = Brushes.Green; Label_ServerConnect.Content = "Сервер подключен"; }