예제 #1
0
        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);
        }
예제 #2
0
        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;
                    }
                }
            }
        }
예제 #3
0
        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("Пустые поля не допускаются (кроме Отчества).");
     }
 }
예제 #5
0
 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);
     }
 }
예제 #6
0
 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();
 }