public static int NewDataPerson() { int flag = 0; SqlManager sqlManager = new SqlManager(); string[] data = sqlManager.ReturnDataPerson(); if (data != null) { NamePerson = data[0]; LastName = data[1]; MiddleName = data[2]; SeriaPass = Convert.ToInt32(data[3]); NumberPass = Convert.ToInt32(data[4]); PhoneNumber = data[5]; System.GC.Collect(); } else { flag = -1; } return(flag); }
private void Buy_Click(object sender, RoutedEventArgs e) { SqlManager sqlManager; if (DataPerson.right == 3) //создание билета для обычного пользователя { MakeTicket(null); } else if (DataPerson.right == 2) //для сотрудника выбор пользователя из списка { SelectedTrips.Visibility = Visibility.Hidden; choiseDataGrid.Visibility = Visibility.Visible; label.Visibility = Visibility.Visible; sqlManager = new SqlManager(); DataTable dt = sqlManager.ReturnTable("SELECT * FROM Tourists"); if (dt != null) { foreach (DataRow dr in dt.Rows) { choiseDataGrid.Items.Add(new ManyPersons { NamePerson = dr.ItemArray[2].ToString(), LastName = dr.ItemArray[1].ToString(), MiddleName = (dr.ItemArray[3].ToString() == "") ? "Отсутствует" : dr.ItemArray[3].ToString(), SeriaPass = Convert.ToInt32(dr.ItemArray[5]), NumberPass = Convert.ToInt32(dr.ItemArray[6]), PhoneNumber = dr.ItemArray[7].ToString() }); } } else { PagesManager.ShowConnectionError(); } } }
private void MakeTicket(string[] param) { //создание билета SqlManager sqlManager; MessageBoxResult res = MessageBox.Show("Вы хотите купить именно этот билет?", "", MessageBoxButton.YesNo, MessageBoxImage.Question); if (res == MessageBoxResult.Yes) { Word.Document doc = null; try { Item item; sqlManager = new SqlManager(); if (sqlManager.UpdateActualCountTripsInDB() != -2) { DataTable dt = sqlManager.ReturnTable("SELECT ActualCount " + "FROM Tours " + "WHERE Name_tour = '" + (SelectedTrips.SelectedItem as Item).NameTour + "'"); if (dt != null) { if (Convert.ToInt32(dt.Rows[0].ItemArray[0]) != 0) { //создаем новый документ Word.Application app = new Word.Application(); var location = System.Reflection.Assembly.GetExecutingAssembly().Location; doc = app.Documents.Open(Path.GetDirectoryName(location) + @"\Шаблон.docx"); doc.Activate(); //открываем шаблон и получаем список закладок Word.Bookmarks wBookmarks = doc.Bookmarks; Word.Range wRange; //положение закладки в документе List <Word.Bookmark> bookmarks = new List <Word.Bookmark>(); foreach (Word.Bookmark mark in wBookmarks) { bookmarks.Add(mark); } string[] mass = (DataPerson.right == 3) ? sqlManager.ReturnDataPerson() : param; if (mass != null) { string[] data = new string[13]; for (int i = 0; i < 6; i++) { data[i] = mass[i]; } item = Item.items.Find(x => x.NameTour == (SelectedTrips.SelectedItem as Item).NameTour); data[6] = item.NameTour; data[7] = item.NameCountry; data[8] = item.NameCity; data[9] = item.DateBegin; data[10] = item.DateEnd; data[11] = item.Price.ToString(); data[12] = DateTime.Today.ToShortDateString(); for (int i = 0; i < 13; i++) //заполнение данных на месте закладок { wRange = bookmarks.ElementAt(i).Range; wRange.Text = data[i]; } Item.items.Remove(item); SelectedTrips.Items.Remove(SelectedTrips.SelectedItem); int flag = sqlManager.ReturnNumber("SELECT Num_Tour FROM Tours WHERE Name_tour = '" + data[6] + "'"); if (flag != -2) { int buf = flag; if (sqlManager.Insert("INSERT INTO Trips(Num_tour, Num_tourist, DateOfBuy) VALUES(" + buf + "," + DataPerson.id + ", '" + DateTime.Today.Date + "')") != -2) { if ((flag = DataPerson.CountTickets()) != -2) { doc.SaveAs(FileName: @"..\Desktop\Ticket" + DataPerson.id + "_" + flag + ".docx"); doc.Close(); doc = null; MessageBox.Show("Ваш билет готов и находится на рабочем столе", "", MessageBoxButton.OK, MessageBoxImage.Information); choiseDataGrid.ItemsSource = null; choiseDataGrid.Visibility = Visibility.Hidden; label.Visibility = Visibility.Hidden; SelectedTrips.Visibility = Visibility.Visible; } else { PagesManager.ShowConnectionError(); } } else { PagesManager.ShowConnectionError(); } } else { PagesManager.ShowConnectionError(); } } else { PagesManager.ShowConnectionError(); } } else { MessageBox.Show("Билеты закончились!", "", MessageBoxButton.OK, MessageBoxImage.Warning); item = Item.items.Find(x => x.NameTour == (SelectedTrips.SelectedItem as Item).NameTour); Item.items.Remove(item); SelectedTrips.Items.Remove(SelectedTrips.SelectedItem); choiseDataGrid.ItemsSource = null; choiseDataGrid.Visibility = Visibility.Hidden; label.Visibility = Visibility.Hidden; SelectedTrips.Visibility = Visibility.Visible; } System.GC.Collect(); } else { PagesManager.ShowConnectionError(); } } else { PagesManager.ShowConnectionError(); } } catch (Exception ex) { doc.Close(); doc = null; Console.WriteLine("Во время выполнения произошла ошибка! " + ex.Message); } } }
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); } }