public ListView PushListView(ListView List, List <string> listParams, int cityNum, int SelectedSort, string search) { string sql = "SELECT * FROM PushListView WHERE "; if (search != "") { if (DataManager.CheckInputString(@"[А-Яа-я]{1,30}$", search) == true) { sql += " Name_city LIKE '%" + search + "%' AND "; } } AddConditions(ref sql, listParams); if (AddItems(ref List, sql, SelectedSort) == -2) { List = null; } System.GC.Collect(); return(List); }
private void datagrid_CellEditEnding(object sender, DataGridCellEditEndingEventArgs e) { DataGridCellInfo cellInfo = datagrid.CurrentCell; if (datagrid.CurrentCell.Column != null) { numColumn = datagrid.CurrentCell.Column.DisplayIndex - 1; if ((cellInfo.Column.GetCellContent(cellInfo.Item) as TextBox) != null) { if ((cellInfo.Column.GetCellContent(cellInfo.Item) as TextBox).Text != "") { DataTable dt = sqlManager.ReturnTable("SELECT * FROM " + dataTable.TableName + " WHERE 1 = 2"); if (dt != null) { if (dt.Columns[numColumn].DataType.Name == "DateTime") { if (DataManager.CheckInputString(listRegexs.First(x => x.Key == "Date").Value, (cellInfo.Column.GetCellContent(cellInfo.Item) as TextBox).Text) == true) { e.Cancel = false; } else { MessageBox.Show("Изменения не зафиксированы, некорректный ввод!\nДата вводится по формату dd.mm.yyyy", "", MessageBoxButton.OK, MessageBoxImage.Error); e.Cancel = true; } } else if (DataManager.CheckInputString(listRegexs.First(x => x.Key == dataTable.Columns[numColumn].DataType.Name).Value, (cellInfo.Column.GetCellContent(cellInfo.Item) as TextBox).Text) == true) { if (dataTable.Columns[numColumn].DataType.Name == "Int32") { int res = sqlManager.CheckKey(dataTable.TableName, cellInfo.Column.Header.ToString(), Convert.ToInt32((cellInfo.Column.GetCellContent(cellInfo.Item) as TextBox).Text)); if (res == 0 || res == 1) { e.Cancel = false; } else if (res == -2) { ShowConnectionError(); } else { MessageBox.Show("Строка с таким номером не найдена!", "", MessageBoxButton.OK, MessageBoxImage.Error); e.Cancel = true; } } else { e.Cancel = false; } } else { MessageBox.Show("Изменения не зафиксированы, некорректный ввод!", "", MessageBoxButton.OK, MessageBoxImage.Error); e.Cancel = true; } } else { ShowConnectionError(); } } else if (dataTable.Columns[numColumn].AllowDBNull == true && (cellInfo.Column.GetCellContent(cellInfo.Item) as TextBox).Text == "") { if (dataTable.Columns[numColumn].DataType.Name == "Int32") { (cellInfo.Column.GetCellContent(cellInfo.Item) as TextBox).Text = "0"; } e.Cancel = false; } else { MessageBox.Show("Изменения не зафиксированы,\nв этом столбце запрещены значения NULL!", "", MessageBoxButton.OK, MessageBoxImage.Error); e.Cancel = true; } } } }
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("Пустые поля не допускаются (кроме Отчества)."); } }
private void Enter_Click(object sender, RoutedEventArgs e) { if (Login.Text.Length > 0 && Password.Password.Length > 0) { if (DataManager.CheckInputString(@"^(?=.{3,10}$)[A-Za-z0-9]*$", Login.Text)) //предварительная проверка логина { if (DataManager.CheckInputString(@"^(?=.{5,20}$)[A-Za-z0-9!#$%^&*]*$", Password.Password)) //предварительная проверка пароля { SqlManager connection = new SqlManager(); int flag = connection.ExistsAccount(Login.Text, Password.Password); //проверка на существование аккаунта if (flag == 0) { //получение прав доступа DataPerson.right = connection.ReturnNumber("SELECT access_right FROM Accounts " + "WHERE login = '******'"); if (DataPerson.right != -2) { //получение номера аккаунта в зависимости от прав if (DataPerson.right == 3) { DataPerson.id = connection.ReturnNumber("SELECT Num_tourist FROM Accounts " + "WHERE login = '******'"); if (DataPerson.id == -2) { flag = -2; } } else if (DataPerson.right == 2) { DataPerson.id = connection.ReturnNumber("SELECT Num_worker FROM Accounts " + "WHERE login = '******'"); if (DataPerson.id == -2) { flag = -2; } } if ((DataPerson.right == 2 || DataPerson.right == 3) && flag != -2) { TourismWindow tw = new TourismWindow(); tw.Show(); Close(); } else if (DataPerson.right == 1 && flag != -2) { WindowAdmin wa = new WindowAdmin(); wa.Show(); Close(); } else { ShowConnectionError(); } System.GC.Collect(); } else { ShowConnectionError(); } } else if (flag == -2) { ShowConnectionError(); } else { ShowError(); } } else { ShowError(); } } else { ShowError(); } } else { MessageBox.Show("Необходимо ввести пароль и логин.", "", MessageBoxButton.OK, MessageBoxImage.Warning); } }
private void Save_Click(object sender, RoutedEventArgs e) { if (NameEdit.Text != "" || LastNameEdit.Text != "" || MiddleNameEdit.Text != "" || PhoneEdit.Text != "") { int error = 0; List <string> list = new List <string>(); if (NameEdit.Text != "") { if (DataManager.CheckInputString(@"^(?:(?![ЫЫЙЪЬЁЦЩ])[А-Я])[а-я]{1,30}$", NameEdit.Text) == false) { ShowError("Имя введено неверно." + '\n' + "Имя должно содержать не более 30, не менее 2 букв русского алфавита" + '\n' + "и начинаться с заглавной буквы русского алфавита."); NameEdit.Text = ""; error++; } else { list.Add("Name = '" + NameEdit.Text + "', "); if (error > 0) { error--; } } } if (LastNameEdit.Text != "") { if (DataManager.CheckInputString(@"^(?:(?!([ЬЪЫ]))[А-Я])[а-я]{0,30}$", LastNameEdit.Text) == false) { ShowError("Фамилия введена неверно." + '\n' + "Фамилия должна содержать не более 30, не менее 2 букв русского алфавита" + '\n' + "и начинаться с заглавной буквы русского алфавита."); LastNameEdit.Text = ""; if (error > 0) { error++; } } else { list.Add("Last_name = '" + LastNameEdit.Text + "', "); if (error > 0) { error--; } } } if (MiddleNameEdit.Text != "") { if (DataManager.CheckInputString(@"^(?:(?![ЫЫЙЪЬЁЦЩ])[А-Я])[а-я]{1,30}$", MiddleNameEdit.Text) == false) { ShowError("Отчество должно содержать не более 40, не менее 4 букв русского алфавита" + '\n' + "и начинаться с заглавной буквы русского алфавита."); MiddleNameEdit.Text = ""; if (error > 0) { error++; } } else { list.Add("Middle_name = '" + MiddleNameEdit.Text + "', "); if (error > 0) { error--; } } } if (PhoneEdit.Text != "") { if (DataManager.CheckInputString(@"^\+7\d{10}$", PhoneEdit.Text) == false) { ShowError("Номер телефона введен неверно." + '\n' + "Номер телефона должен начинаться с +7" + '\n' + "и после этого должны быть 10 цифр."); PhoneEdit.Text = ""; if (error > 0) { error++; } } else { list.Add("Phone_number = '" + PhoneEdit.Text + "', "); if (error > 0) { error--; } } } if (list.Count > 0 && error == 0) { UpdateDataPerson(list); } } else { ShowError("Пустые поля не допускаются.\nДолжно быть изменено хотя бы одно поле.\nДля выхода из редактора нажмите \"Отмена\"."); } System.GC.Collect(); }