Exemplo n.º 1
0
        private void DeleteAccount_PreviewMouseDown(object sender, MouseButtonEventArgs e)
        {
            MessageBoxResult res = MessageBox.Show("Вы действительно хотите удалить аккаунт?", "Подтверждение действия", MessageBoxButton.YesNo, MessageBoxImage.Question);

            if (res == MessageBoxResult.Yes)
            {
                db.users.Remove(user);
                db.SaveChanges();
                MessageBox.Show("Ваш аккаунт был удалён.", "Удаление аккаунта", MessageBoxButton.OK, MessageBoxImage.Information);
                MainWindow mainWindow = new MainWindow();
                mainWindow.Show();
                this.Close();
            }
        }
        private void Continue_Click(object sender, RoutedEventArgs e)
        {
            if (BirthDateInput.SelectedDate > DateTime.Today)
            {
                MessageBox.Show("Дата рождения не может быть позже текущего дня", "Некорректная дата рождения", MessageBoxButton.OK, MessageBoxImage.Error);
            }
            else
            {
                string surname = SurnameInput.Text.Trim();
                string name    = NameInput.Text.Trim();
                db.listeners.Attach(listener);
                if (!(surname == ""))
                {
                    listener.listenerSurname = surname;
                    db.Entry(listener).Property("listenerSurname").IsModified = true;
                }
                if (!(name == ""))
                {
                    listener.listenerName = name;
                    db.Entry(listener).Property("listenerName").IsModified = true;
                }
                if (!(BirthDateInput.SelectedDate is null))
                {
                    DateTime birthDate = (DateTime)BirthDateInput.SelectedDate;
                    listener.listenerBirthDate = birthDate;
                    db.Entry(listener).Property("listenerBirthDate").IsModified = true;
                }
                db.SaveChanges();

                MainWindow mainWindow = new MainWindow();
                mainWindow.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();
            }
        }
Exemplo n.º 4
0
        private void SignUp_Click(object sender, RoutedEventArgs e)
        {
            string login          = LoginInput.Text.Trim();
            string email          = EmailInput.Text.Trim();
            string password       = PasswordInput.Password;
            string passwordRepeat = PasswordRepeatInput.Password;

            if (login == "" || email == "" || password == "" || passwordRepeat == "")
            {
                MessageBox.Show("Кажется, Вы заполнили не все поля. Пожалуйста, исправьте это.", "Не все поля заполнены", MessageBoxButton.OK, MessageBoxImage.Error);
                return;
            }
            else if (login.Length < 2)
            {
                MessageBox.Show("Логин должен содержать как минимум 2 символа. Пожалуйста, придумайте более длинный логин.", "Слишком короткий логин", MessageBoxButton.OK, MessageBoxImage.Error);
                return;
            }
            else if (!Regex.IsMatch(login, @"^[A-Za-z0-9-_.]+[A-Za-z0-9-_]+$"))
            {
                MessageBox.Show("Введённый логин не соответствует требованиям. В логине можно использовать только следующие символы: латинские буквы, цифры, символы тире (-), подчеркивания (_) и точки (.), при этом последний символ точкой быть не может. Никаких пробелов и прочих символов быть не должно.", "Неверный логин", MessageBoxButton.OK, MessageBoxImage.Error);
                return;
            }
            else if (LoginExists(login))
            {
                MessageBox.Show("Пользователь с таким логином уже существует. Пожалуйста, придумайте другой логин.", "Такой логин уже существует", MessageBoxButton.OK, MessageBoxImage.Error);
                return;
            }
            else if (!Regex.IsMatch(email, @"^[A-Za-z0-9._]+@[A-Za-z0-9]+(\.[A-Za-z]{2,3})+$"))
            {
                MessageBox.Show("Введённый адрес электронной почты не похож на настоящий. Пожалуйста, убедитесь, что Вы корректно ввели почту.", "Неверный адрес почты", MessageBoxButton.OK, MessageBoxImage.Error);
                return;
            }
            else if (EmailExists(email))
            {
                MessageBox.Show("Пользователь с таким адресом почты уже существует. Пожалуйста, введите другой адрес.", "Данная почта уже используется", MessageBoxButton.OK, MessageBoxImage.Error);
                return;
            }
            else if (password.Length < 6)
            {
                MessageBox.Show("Пароль должен содержать не менее 6 символов. Пожалуйста, позаботьтесь о вашей безопасности и придумайте пароль подлиннее.", "Слишком короткий пароль", MessageBoxButton.OK, MessageBoxImage.Error);
                return;
            }
            else if (password.Length > 128)
            {
                var result = MessageBox.Show("Вы ввели пароль длинее 128 символов. Его придется долго вводить и ещё дольше запоминать. Вы уверены, хотите продолжить?", "Очень длинный пароль", MessageBoxButton.YesNo, MessageBoxImage.Exclamation);
                if (result == MessageBoxResult.Yes)
                {
                }
                else
                {
                    return;
                }
            }
            if (password != passwordRepeat)
            {
                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")));

                try
                {
                    users user = new users
                    {
                        userLogin        = login,
                        userPasswordHash = passwordHash,
                        userAccessLevel  = 1
                    };
                    db.users.Add(user);
                    db.SaveChanges();

                    int userId;
                    userId = user.userId;
                    listeners listener = new listeners
                    {
                        listenerId    = userId,
                        listenerEmail = email
                    };
                    db.listeners.Add(listener);
                    db.SaveChanges();

                    SignupInfo signupInfo = new SignupInfo(listener);
                    signupInfo.Show();
                    this.Close();
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message + "\n" + ex.InnerException);
                }
            }
        }