private void DockPanel_KeyUp_Searching(object sender, KeyEventArgs e) { if (e.Key == Key.Enter) { if (search_textbox.Text != "") { string query = $"SELECT * FROM Account WHERE login = '******';"; DBconnection dBconnection = new DBconnection(); dBconnection.ConnectDB(); var result = dBconnection.SelectQuery(query); if (result.Read()) { foreach (var contact in contacts) { if (result.GetString(1) == contact.UserName) { return; } } List <Message> messages = new List <Message>(); messages.Add(new Message("Start", DateTime.Now.ToString("t"), true)); contacts.Add(new Contact(new List <Message>(messages), result.GetString(1), result.GetString(4))); ContactList_listBox.ItemsSource = null; ContactList_listBox.ItemsSource = contacts; //обновление списка контактов на форме search_textbox.Text = "Searching"; } } } }
private void ButtonSignUp_Click(object sender, RoutedEventArgs e) { DBconnection dBconnection = new DBconnection(); dBconnection.ConnectDB(); if (dBconnection.IsConnect()) { string query = $"INSERT INTO Account(login, pass, status) " + $"VALUES ('{InputLogin.Text}', '{InputPassword.Password}', 'I am tomato');"; dBconnection.InsertQuery(query); } dBconnection.Close(); SignIn signIn = new SignIn(); signIn.Show(); this.Close(); }
private async void InputLogin_TextChanged(object sender, TextChangedEventArgs e) { if (await InputLogin.GetIdle()) { DBconnection dBconnection = new DBconnection(); dBconnection.ConnectDB(); string query = $"SELECT * FROM Account WHERE login = '******';"; var result = dBconnection.SelectQuery(query); if (result.Read()) { LabelLoginCheck.Foreground = Brushes.Red; LabelLoginCheck.Text = "Логин занят"; } else { LabelLoginCheck.Foreground = Brushes.Green; LabelLoginCheck.Text = "Логин свободен"; } } }
private void ButtonAuthorization_Click(object sender, RoutedEventArgs e) { DBconnection dBconnection = new DBconnection(); dBconnection.ConnectDB(); if (dBconnection.IsConnect()) { string query = $"SELECT DISTINCT * FROM Account WHERE login = '******' AND pass = '******';"; var result = dBconnection.SelectQuery(query); if (result.Read()) { Messanger messanger = new Messanger(InputLogin.Text); messanger.Show(); this.Close(); } else { LabelCheck.Foreground = Brushes.Red; LabelCheck.Text = "Логин или пароль неверный"; } } }
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 = "Сервер подключен"; }
public void Process() { try { string originalMessage = ""; Stream = client.GetStream(); // получаем имя пользователя string message = GetMessage(); UserName = message; Console.WriteLine(UserName + " вошел в чат"); // в бесконечном цикле получаем сообщения от клиента DBconnection dBconnection = new DBconnection(); while (true) { int found = 0; string textMessage = ""; string sender = ""; string recepient = ""; string date = ""; string time = ""; try { message = GetMessage(); originalMessage = message; Console.WriteLine($"{UserName}: {message}"); if (message.Contains("NewMessage")) { message = message.Substring(10); Console.WriteLine($"{UserName}: {message}"); found = message.IndexOf("&"); sender = message.Substring(0, found); Console.WriteLine($"sender: {sender}"); message = message.Substring(found + 1); Console.WriteLine($"{UserName}: {message}"); found = message.IndexOf("&"); recepient = message.Substring(0, found); Console.WriteLine($"recepient: {recepient}"); message = message.Substring(found + 1); Console.WriteLine($"{UserName}: {message}"); found = message.IndexOf("&"); textMessage = message.Substring(0, found); Console.WriteLine($"textMessage: {textMessage}"); message = message.Substring(found + 1); Console.WriteLine($"{UserName}: {message}"); found = message.IndexOf("&"); date = message.Substring(0, found); Console.WriteLine($"date: {date}"); message = message.Substring(found + 1); time = message; Console.WriteLine($"time: {time}"); server.SendMessage(originalMessage, recepient); dBconnection.ConnectDB(); string query = $"INSERT INTO Messages(sender, recepient, text, date, time) VALUES ('{sender}', '{recepient}', " + $"'{textMessage}', '{date}', '{time}');"; dBconnection.InsertQuery(query); dBconnection.ForceClose(); } } catch { message = String.Format("{0}: покинул чат", UserName); Console.WriteLine(message); break; } } } catch (Exception e) { Console.WriteLine(e.Message); } finally { // в случае выхода из цикла закрываем ресурсы server.RemoveConnection(this.Id); Close(); } }