コード例 #1
0
        //Поиск пользователей
        private void User_Search_Changed(object sender, RoutedEventArgs e)
        {
            try
            {
                //Предварительно очищаем список
                User_List.Items.Clear();

                //Открываем соединение
                connection.Open();

                //Строка запроса на поиск пользователей в БД
                string sql_cmd = "SELECT server_chats.users.ID, server_chats.users.User_Name, server_chats.users.User_Nickname FROM server_chats.users WHERE server_chats.users.User_Name=@NAME";

                //Создаём команду для запроса в БД
                MySqlCommand cmd = connection.CreateCommand();
                cmd.CommandText = sql_cmd;

                //Добавляем параметры в команду
                MySqlParameter name_parameter = new MySqlParameter("@NAME", MySqlDbType.VarChar);
                name_parameter.Value = User_Search.Text;
                cmd.Parameters.Add(name_parameter);

                //...
                using (DbDataReader reader = cmd.ExecuteReader())
                {
                    if (reader.HasRows)
                    {
                        while (reader.Read())
                        {
                            //Создаём кастомизированный item для списка пользователей и добавляем ему свойства
                            Chat_List user = new Chat_List();
                            IDFriend       = int.Parse(reader.GetString(0));
                            user.Name      = reader.GetString(1);
                            user.ID_Friend = IDFriend;
                            user.Nickname  = "@" + reader.GetString(2);
                            User_List.Items.Add(user);
                            Friend_Nick = reader.GetString(2);
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                //Выводим сообщения об ошибке
                MessageBox.Show(ex.ToString());
            }
            finally
            {
                //Закрываем соединение
                connection.Close();
                if (User_List.Items.Count == 0)
                {
                    IDFriend    = -1;
                    Friend_Nick = "null";
                }
            }
        }
コード例 #2
0
        //Метод обновления списка чатов
        public void Update_Dialog_List()
        {
            try
            {
                //Открываем соединение
                connection.Open();

                //Команда для БД
                string sql_cmd = "SELECT * FROM server_chats.chats WHERE (ID_User_1=@ID OR ID_User_2=@ID);";

                //Создаём команду запроса
                MySqlCommand cmd = connection.CreateCommand();
                cmd.CommandText = sql_cmd;

                //Добавляем параметры
                MySqlParameter id_parameter = new MySqlParameter("@ID", MySqlDbType.Int32);
                id_parameter.Value = IDuser;
                cmd.Parameters.Add(id_parameter);

                //Вот это обязательно
                Chat_list.Items.Clear();

                //...
                using (DbDataReader reader = cmd.ExecuteReader())
                {
                    if (reader.HasRows)
                    {
                        while (reader.Read())
                        {
                            Chat_List list = new Chat_List();
                            list.ID   = int.Parse(reader.GetString(0));
                            list.Name = reader.GetString(1);
                            if (int.Parse(reader.GetString(2)) == IDuser)
                            {
                                list.ID_Friend = int.Parse(reader.GetString(3));
                            }
                            else
                            {
                                list.ID_Friend = int.Parse(reader.GetString(2));
                            }
                            Chat_list.Items.Add(list);
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.ToString());
            }
            finally
            {
                //Закрываем соединение
                connection.Close();
            }
        }
コード例 #3
0
        //Добавление пользователя в друзья
        private void AddToFriend_Click(object sender, RoutedEventArgs e)
        {
            try
            {
                //Объект item'а, но только первого (если будут с одинаковыми именами, тогда будут проблемы)
                //Нужно изменить функцию поиска с имени на никнейм
                Chat_List user = (Chat_List)User_List.Items[0];

                //Открываем соединение
                connection.Open();

                //Строка запроса на добавление пользователя в список друзей
                string sql_cmd = "INSERT INTO server_chats.friend VALUES (@MYID, @IDFRIEND, @FRIENDNAME);";

                //Команда запроса
                MySqlCommand cmd = connection.CreateCommand();
                cmd.CommandText = sql_cmd;

                //Добавляем параметры
                MySqlParameter myID = new MySqlParameter("@MYID", MySqlDbType.Int32);
                myID.Value = IDuser;
                cmd.Parameters.Add(myID);

                MySqlParameter friendID = new MySqlParameter("@IDFRIEND", MySqlDbType.Int32);
                friendID.Value = user.ID_Friend;
                cmd.Parameters.Add(friendID);

                MySqlParameter name = new MySqlParameter("@FRIENDNAME", MySqlDbType.VarChar);
                name.Value = user.Name;
                cmd.Parameters.Add(name);

                //Запускаем команду
                cmd.ExecuteNonQuery();

                //После успешного выполнения команды, будет дополнен список друзей
                Friend_List.Items.Add(user);
                Pop_Up_Notification();
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.ToString());
            }
            finally
            {
                //Закрываем соединение
                connection.Close();
            }
        }
コード例 #4
0
        public void Update_Friend_List()
        {
            try
            {
                //Предварительно очищаем список
                Friend_List.Items.Clear();

                //Открываем соединение
                connection.Open();

                //Строка запроса для выборки друзей авторизованного пользователя
                string sql_cmd = "SELECT * FROM server_chats.friend WHERE ID_User = @MYID;";

                //Команда запроса
                MySqlCommand cmd = connection.CreateCommand();
                cmd.CommandText = sql_cmd;

                //Добавляем параметры
                MySqlParameter myID = new MySqlParameter("@MYID", MySqlDbType.Int32);
                myID.Value = IDuser;
                cmd.Parameters.Add(myID);

                using (DbDataReader reader = cmd.ExecuteReader())
                {
                    if (reader.HasRows)
                    {
                        while (reader.Read())
                        {
                            Chat_List user = new Chat_List();
                            user.ID_Friend = int.Parse(reader.GetString(1));
                            user.Name      = reader.GetString(2);
                            Friend_List.Items.Add(user);
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.ToString());
            }
            finally
            {
                //Закрываем соединение
                connection.Close();
            }
        }
コード例 #5
0
        //Удаление пользователя из друзей
        private void DeleteFromFriend_Click(object sender, RoutedEventArgs e)
        {
            try
            {
                Button btn = sender as Button;

                //Открываем соединение
                connection.Open();

                //Получаем объект нашего пользователя (произойдёт только при выборе элемента сначала )
                //значит нужно кнопку сделать недоступной, пока не выбирут его
                Chat_List user = (Chat_List)Friend_List.SelectedItem;

                //Строка запроса на удаление пользователя из друзей
                string sql_cmd = "DELETE FROM server_chats.friend WHERE ID_User = @MYID AND ID_Friend = @IDFRIEND";

                //Создаём команду запроса
                MySqlCommand cmd = connection.CreateCommand();
                cmd.CommandText = sql_cmd;

                //Добавляем параметры
                MySqlParameter myID = new MySqlParameter("@MYID", MySqlDbType.Int32);
                myID.Value = IDuser;
                cmd.Parameters.Add(myID);

                MySqlParameter friendID = new MySqlParameter("@IDFRIEND", MySqlDbType.Int32);
                friendID.Value = int.Parse(btn.Content.ToString());
                cmd.Parameters.Add(friendID);

                cmd.ExecuteNonQuery();
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.ToString());
            }
            finally
            {
                //Закрываем соединение
                connection.Close();

                //Обновляем список друзей
                Update_Friend_List();
            }
        }
コード例 #6
0
 //Открытие диалога
 private async void Chat_list_MouseDoubleClick(object sender, System.Windows.Input.MouseButtonEventArgs e)
 {
     IDFriend = -1;
     Chat_List item = (Chat_List)Dispatcher.Invoke(() => Chat_list.SelectedItem);
     await Task.Run(() => OpenChat(item.ID_Friend));
 }