private void Continue_Click(object sender, RoutedEventArgs e) { int flag = 0; if (common.IsChecked != null && admin.IsChecked != null && worker.IsChecked != null) { SqlManager sqlManager; if (common.IsChecked == true) { WindowRegistration wr = new WindowRegistration(); wr.Show(); DataPerson.right = 3; Close(); } else if (admin.IsChecked == true) //12345 пароль { sqlManager = new SqlManager(); //проверка правильности ввода пароля для регистрации администратора if (DataManager.CheckInputString(@"\d{5}", passAdmin.Password) != false) { flag = sqlManager.Select("SELECT pass_admin FROM Passwords " + "WHERE pass_admin = '" + DataManager.MakeHash(passAdmin.Password) + "'", 1); if (flag != -2) { if (flag != -1) { DataPerson.right = 1; WindowRegistration wr = new WindowRegistration(); wr.Show(); Close(); } else { MessageBox.Show("Пароль неверный", "", MessageBoxButton.OK, MessageBoxImage.Error); passAdmin.Password = ""; } } else { ShowConnectionError(); } } else { MessageBox.Show("Пароль неверный", "", MessageBoxButton.OK, MessageBoxImage.Error); passAdmin.Password = ""; } } else if (worker.IsChecked == true) //54321 пароль { //проверка правильности ввода пароля для регистрации работника sqlManager = new SqlManager(); if (DataManager.CheckInputString(@"\d{5}", passWorker.Password) != false && flag != -1) { flag = sqlManager.Select("SELECT pass_worker FROM Passwords " + "WHERE pass_worker = '" + DataManager.MakeHash(passAdmin.Password) + "'", 1); if (flag != -2) { if (flag != -1) { DataPerson.right = 2; WindowRegistration wr = new WindowRegistration(); wr.Show(); Close(); } else { MessageBox.Show("Пароль неверный", "", MessageBoxButton.OK, MessageBoxImage.Error); passAdmin.Password = ""; } } else { ShowConnectionError(); } } else { MessageBox.Show("Пароль неверный", "", MessageBoxButton.OK, MessageBoxImage.Error); passWorker.Password = ""; } } } else { MessageBox.Show("Необходимо выбрать!\nДля отмены нажмите \"Назад\".", "", MessageBoxButton.OK, MessageBoxImage.Warning); } }
private void Registr_Click(object sender, RoutedEventArgs e) { //проверка правильности ввода данных if (name.Text.Length > 0 && LastName.Text.Length > 0 && SeriaPass.Text.Length > 0 && NumberPass.Text.Length > 0 && Phone.Text.Length > 0 && Login.Text.Length > 0 && Password1.Password.Length > 0 && Password2.Password.Length > 0 && DateBirth.Text != "") { //проверка имени if (DataManager.CheckInputString(@"^(?:(?![ЫЫЙЪЬЁЦЩ])[А-Я])[а-я]{1,30}$", name.Text)) { //проверка фамилии if (DataManager.CheckInputString(@"^(?:(?!([ЬЪЫ]))[А-Я])[а-я]{0,30}$", LastName.Text)) { if (MiddleName.Text.Length > 0) { //проверка отчества if (DataManager.CheckInputString(@"^(?:(?![ЫЫЙЪЬЁЦЩ])[А-Я])[а-я]{1,30}$", MiddleName.Text) == false) { ShowError("Отчество должно содержать не более 40, не менее 4 букв русского алфавита" + '\n' + "и начинаться с заглавной буквы русского алфавита.\n Другие символы запрещены!"); MiddleName.Text = ""; } } DateTime dt = DateTime.Today; if (DateBirth.DisplayDate.Year < dt.Year && (dt.Year - DateBirth.DisplayDate.Year >= 18) && (dt.Year - DateBirth.DisplayDate.Year <= 120)) { //проверка серии паспорта if (DataManager.CheckInputString(@"^(?=.{4}$)\d*$", SeriaPass.Text)) { //проверка номера паспорта if (DataManager.CheckInputString(@"^(?=.{6}$)\d*$", NumberPass.Text)) { //проверка номера телефона if (DataManager.CheckInputString(@"^\+7\d{10}$", Phone.Text)) { //проверка логина if (DataManager.CheckInputString(@"^(?=.{3,10}$)(?=[^A-Z]*[A-Z])(?=[^0-9]*[0-9])(?=[^a-z]*[a-z])[A-Za-z0-9]*$", Login.Text)) { //проверка пароля if (DataManager.CheckInputString(@"^(?=.{5,20}$)(?=[^0-9]*[0-9])(?=[^A-Z]*[A-Z])(?=[^!#$%^&*]*[!#$%^&*])[a-zA-Z0-9!#$%^&*]*$", Password1.Password)) { if (Password1.Password == Password2.Password) //проверка на повторное введение пароля { SqlManager connection = new SqlManager(); flag = connection.Select("SELECT Passport_number,Passport_series FROM Tourists WHERE Passport_number = " + NumberPass.Text + " AND Passport_series = " + SeriaPass.Text, 2); if (flag == -1) //возвращать строку для провверки введенного логина и существующих { flag = connection.Select("SELECT login FROM Accounts WHERE login = '******'", 1); if (flag == -1) { //добавление пользовательских данных в БД if (DataPerson.right == 2) { InsertNewUserWithRight("Workers", "Num_worker", 2, connection); } else if (DataPerson.right == 3) { InsertNewUserWithRight("Tourists", "Num_tourist", 3, connection); } else if (DataPerson.right == 1) { InsertNewUserWithRight("Admins", "Num_admin", 1, connection); } if (flag != -2) { MessageBox.Show("Регистрация прошла успешно.\nПройдите авторизацию для дальнейшего использования.", "", MessageBoxButton.OK, MessageBoxImage.Information); MainWindow mw = new MainWindow(); mw.Show(); Close(); System.GC.Collect(); } } else if (flag == -2) { ShowConnectionError(); } else { ShowError("Такой пользователь уже существует."); Login.Text = ""; Password1.Password = ""; Password2.Password = ""; } } else if (flag == -2) { ShowConnectionError(); } else { ShowError("Такой пользователь уже существует."); SeriaPass.Text = ""; NumberPass.Text = ""; } } else { ShowError("Вы неправильно повторили пароль."); Password1.Password = ""; Password2.Password = ""; } } else { ShowError("Пароль введен неверно." + '\n' + "Пароль должен как минимум состоять из 1 заглавной, 2 строчных английских букв," + '\n' + "1 символа из #, $, %, ^, &, *, ! " + "и 1 цифры.\nДлина пароля не может привышать 5 и не может быть больше 20 символов.\n Другие символы запрещены!"); Password1.Password = ""; Password2.Password = ""; } } else { ShowError("Логин введен неверно." + '\n' + "Логин должен состоять только из английских букв, цифр," + '\n' + "быть не более 10, не менее 4 символов\n и должно содержать хотя бы 1 заглавную, 1 строчную букву и 1 цифру.\n Другие символы запрещены!"); Login.Text = ""; Password1.Password = ""; Password2.Password = ""; } } else { ShowError("Номер телефона введен неверно." + '\n' + "Номер телефона должен начинаться с +7" + '\n' + "и после этого должны быть 10 цифр.\n Другие символы запрещены!"); Phone.Text = ""; } } else { ShowError("Номер паспорта введен неверно." + '\n' + "Номер паспорта должен состоять из 6 цифр.\n Другие символы запрещены!"); NumberPass.Text = ""; } } else { ShowError("Серия паспорта введена неверно." + '\n' + "Серия паспорта должна состоять из 4 цифр.\n Другие символы запрещены!"); SeriaPass.Text = ""; } } else { ShowError("Приложение предназначено для совершеннолетних пользователей.\nДата рождения не может быть больше текущего года и вам не может быть больше 120 лет."); DateBirth.Text = ""; } } else { ShowError("Фамилия введена неверно." + '\n' + "Фамилия должна содержать не более 30, не менее 2 букв русского алфавита" + '\n' + "и начинаться с заглавной буквы русского алфавита.\n Другие символы запрещены!"); LastName.Text = ""; } } else { ShowError("Имя введено неверно." + '\n' + "Имя должно содержать не более 30, не менее 2 букв русского алфавита" + '\n' + "и начинаться с заглавной буквы русского алфавита.\n Другие символы запрещены!"); name.Text = ""; } } else { ShowError("Пустые поля не допускаются (кроме Отчества)."); } }