private void GoBack_Click(object sender, RoutedEventArgs e)
        {
            MessageBoxResult res = MessageBox.Show("Вы уверены, что хотите вернуться?", "Подтверждение действия", MessageBoxButton.YesNo, MessageBoxImage.Question);

            if (res == MessageBoxResult.Yes)
            {
                ListenerProfile listenerProfile = new ListenerProfile(user);
                listenerProfile.Show();
                this.Close();
            }
        }
        private void SaveChanges_Click(object sender, RoutedEventArgs e)
        {
            string oldPassword    = OldPasswordInput.Password;
            string newPassword    = PasswordInput.Password;
            string passwordRepeat = PasswordRepeatInput.Password;
            var    hash           = new MD5CryptoServiceProvider().ComputeHash(Encoding.UTF8.GetBytes(oldPassword));
            string passwordHash   = string.Concat(hash.Select(b => b.ToString("x2")));

            if (passwordHash != user.userPasswordHash)
            {
                MessageBox.Show("Неверно введён старый пароль.", "Ошибка", MessageBoxButton.OK, MessageBoxImage.Error);
                return;
            }
            else if (newPassword.Length < 6)
            {
                MessageBox.Show("Новый пароль должен содержать не менее 6 символов. Пожалуйста, позаботьтесь о вашей безопасности и придумайте пароль подлиннее.", "Слишком короткий пароль", MessageBoxButton.OK, MessageBoxImage.Error);
                return;
            }
            else if (newPassword.Length > 128)
            {
                var result = MessageBox.Show("Ваш новый пароль длинее 128 символов. Его придется долго вводить и ещё дольше запоминать. Вы уверены, хотите продолжить?", "Очень длинный пароль", MessageBoxButton.YesNo, MessageBoxImage.Exclamation);
                if (result == MessageBoxResult.Yes)
                {
                }
                else
                {
                    return;
                }
            }
            if (newPassword != passwordRepeat)
            {
                MessageBox.Show("Повторно введённый пароль не совпадает с новым паролем. Пожалуйста, убедитесь в том, что Вы ввели всё верно.", "Неверный повторно введённый пароль", MessageBoxButton.OK, MessageBoxImage.Error);
                return;
            }
            else
            {
                var    hashNew         = new MD5CryptoServiceProvider().ComputeHash(Encoding.UTF8.GetBytes(newPassword));
                string passwordHashNew = string.Concat(hashNew.Select(b => b.ToString("x2")));
                user.userPasswordHash = passwordHashNew;
                db.Entry(user).Property("userPasswordHash").IsModified = true;
                db.SaveChanges();
                MessageBox.Show("Пароль успешно обновлён!", "Смена пароля", MessageBoxButton.OK, MessageBoxImage.Information);
                ListenerProfile listenerProfile = new ListenerProfile(user);
                listenerProfile.Show();
                this.Close();
            }
        }
        private void LogIn_Click(object sender, RoutedEventArgs e)
        {
            string login    = LoginInput.Text.Trim();
            string password = PasswordInput.Password;

            if (login == "" || password == "")
            {
                MessageBox.Show("Кажется, Вы заполнили не все поля. Пожалуйста, исправьте это.", "Не все поля заполнены", MessageBoxButton.OK, MessageBoxImage.Error);
                return;
            }
            else
            {
                var    hash         = new MD5CryptoServiceProvider().ComputeHash(Encoding.UTF8.GetBytes(password));
                string passwordHash = string.Concat(hash.Select(b => b.ToString("x2")));
                users  user;
                user = db.users.Where(u => u.userLogin == login && u.userPasswordHash == passwordHash).FirstOrDefault();
                if (user is null)
                {
                    MessageBox.Show("Такого пользователя нет или неверно введен пароль", "Ошибка входа", MessageBoxButton.OK, MessageBoxImage.Error);
                }
                else
                {
                    int userId          = user.userId;
                    int userAccessLevel = user.userAccessLevel;
                    if (userAccessLevel == 1)
                    {
                        ListenerProfile listenerProfile = new ListenerProfile(user);
                        listenerProfile.Show();
                        this.Close();
                    }
                    else if (userAccessLevel == 2)
                    {
                        HostProfile hostProfile = new HostProfile();
                        hostProfile.Show();
                        this.Close();
                    }
                    else
                    {
                        MessageBox.Show("Ошибка");
                    }
                }
            }
        }