private void Registration_Click(object sender, RoutedEventArgs e)
        {
            if (nameField.Text != CheckUser.CheckUserName(nameField.Text))
            {
                System.Windows.MessageBox.Show(CheckUser.CheckUserName(nameField.Text));
                return;
            }

            if (surnamField.Text != CheckUser.CheckUserSurname(surnamField.Text))
            {
                System.Windows.MessageBox.Show(CheckUser.CheckUserSurname(surnamField.Text));
                return;
            }

            if (loginField.Text != CheckUser.CheckUserLogin(loginField.Text))
            {
                System.Windows.MessageBox.Show(CheckUser.CheckUserLogin(loginField.Text));
                return;
            }

            if (passwordField.Password.ToString() != CheckUser.CheckUserPassword(passwordField.Password.ToString()))
            {
                System.Windows.MessageBox.Show(CheckUser.CheckUserPassword(passwordField.Password.ToString()));
                return;
            }

            string userLogin = loginField.Text;

            string mySelectQuery = "SELECT * FROM Users WHERE [UserLogin] = '" + userLogin + "'";

            using (SqlDataAdapter dataAdapter = new SqlDataAdapter(mySelectQuery, myConnectionString))
            {
                DataTable table = new DataTable();
                dataAdapter.Fill(table);
                if (table.Rows.Count > 0)
                {
                    System.Windows.MessageBox.Show("Этот логин занят. Введите другой");
                    return;
                }
                else if (table.Rows.Count == 0)
                {
                    SqlCommand cmd = new SqlCommand();
                    cmd.CommandType = CommandType.Text;
                    cmd.CommandText = "INSERT Users (UserLogin, UserPassword, UserName, UserSurname) VALUES (@login, @password, @name, @surname)";
                    cmd.Parameters.Add("@login", SqlDbType.VarChar).Value    = loginField.Text;
                    cmd.Parameters.Add("@password", SqlDbType.VarChar).Value = passwordField.Password.ToString();
                    cmd.Parameters.Add("@name", SqlDbType.VarChar).Value     = nameField.Text;
                    cmd.Parameters.Add("@surname", SqlDbType.VarChar).Value  = surnamField.Text;
                    cmd.Connection = myConnectionString;
                    myConnectionString.Open();
                    cmd.ExecuteNonQuery();
                    myConnectionString.Close();
                    System.Windows.MessageBox.Show("Регистрация прошла успешно");
                    UserLoginWindow userLoginWindow = new UserLoginWindow();
                    userLoginWindow.Show();
                    this.Close();
                }
            }
        }
        private void AddButton_Click(object sender, RoutedEventArgs e)
        {
            if (login.Text != CheckUser.CheckUserLogin(login.Text))
            {
                System.Windows.MessageBox.Show(CheckUser.CheckUserLogin(login.Text));
                return;
            }
            string mySelectQuery = "SELECT * FROM Users WHERE [UserLogin] = '" + login.Text + "'";

            using (SqlDataAdapter dataAdapter = new SqlDataAdapter(mySelectQuery, myConnectionString))
            {
                DataTable table = new DataTable();
                dataAdapter.Fill(table);
                if (table.Rows.Count > 0)
                {
                    System.Windows.MessageBox.Show("Этот логин занят. Введите другой");
                    return;
                }
            }

            if (password.Password.ToString() != CheckUser.CheckUserPassword(password.Password.ToString()))
            {
                System.Windows.MessageBox.Show(CheckUser.CheckUserPassword(password.Password.ToString()));
                return;
            }

            if (name.Text != CheckUser.CheckUserName(name.Text))
            {
                System.Windows.MessageBox.Show(CheckUser.CheckUserName(name.Text));
                return;
            }

            if (surname.Text != CheckUser.CheckUserSurname(surname.Text))
            {
                System.Windows.MessageBox.Show(CheckUser.CheckUserSurname(surname.Text));
                return;
            }

            string connectionString = @"Data Source=(local)\SQLEXPRESS; Initial Catalog=CEP_UPDATE; Integrated Security=True";

            using (SqlConnection addRow = new SqlConnection(connectionString))
                using (SqlCommand lastCommnd = addRow.CreateCommand())
                {
                    lastCommnd.CommandText = "INSERT INTO Users (UserLogin, UserPassword, UserName, UserSurname) VALUES (@login, @password, @name, @surname)";

                    lastCommnd.Parameters.AddWithValue("@login", login.Text);
                    lastCommnd.Parameters.AddWithValue("@password", password.Password.ToString());
                    lastCommnd.Parameters.AddWithValue("@surname", surname.Text);
                    lastCommnd.Parameters.AddWithValue("@name", name.Text);
                    addRow.Open();
                    lastCommnd.ExecuteNonQuery();
                    addRow.Close();
                }
            System.Windows.MessageBox.Show("Пользователь добавлен.");
        }
        private void AddButton_Click(object sender, RoutedEventArgs e)
        {
            StreamReader file  = new StreamReader("UserLogin.txt");
            string       login = file.ReadLine();

            file.Close();

            StreamReader usrNm  = new StreamReader("UserName.txt");
            string       userNm = usrNm.ReadLine();

            usrNm.Close();

            StreamReader usrSnm  = new StreamReader("UserSurname.txt");
            string       userSnm = usrSnm.ReadLine();

            usrSnm.Close();

            if (cardNumber.Text == string.Empty)
            {
                System.Windows.MessageBox.Show("Номер карты не может быть пустым.");
                return;
            }
            else if (cardNumber.Text.Length == 16)
            {
                char[] cardNumberArray = cardNumber.Text.ToCharArray();
                for (int i = 0; i < cardNumberArray.Length; i++)
                {
                    if (!char.IsDigit(cardNumberArray[i]))
                    {
                        System.Windows.MessageBox.Show("Вы указали неверные символы для номера карты. ");
                        return;
                    }
                }
            }
            else
            {
                System.Windows.MessageBox.Show("Вы неверно ввели номер карты.");
                return;
            }

            if (userName.Text != CheckUser.CheckUserName(userName.Text))
            {
                System.Windows.MessageBox.Show(CheckUser.CheckUserName(userName.Text));
                return;
            }
            else
            {
                if (userName.Text != userNm)
                {
                    System.Windows.MessageBox.Show("Имя на карте должно совпадать с именем пользователя.");
                    return;
                }
            }

            if (userSurname.Text != CheckUser.CheckUserSurname(userSurname.Text))
            {
                System.Windows.MessageBox.Show(CheckUser.CheckUserSurname(userSurname.Text));
                return;
            }
            else
            {
                if (userSurname.Text != userSnm)
                {
                    System.Windows.MessageBox.Show("Фамилия на карте должна совпадать с фамилией пользователя.");
                    return;
                }
            }

            if (cardExpiration.Text == string.Empty)
            {
                System.Windows.MessageBox.Show("Дата действия карты не может быть пустым.");
                return;
            }
            else
            {
                if (!Regex.IsMatch(cardExpiration.Text, @"(01|02|03|04|05|06|07|08|09|10|11|12)/2[2-9]$"))
                {
                    System.Windows.MessageBox.Show("Вы указали неверную дату.");
                    return;
                }
            }

            if (CVVCode.Text == string.Empty)
            {
                System.Windows.MessageBox.Show("CVV код карты не может быть пустым.");
                return;
            }
            else if (CVVCode.Text.Length == 3)
            {
                char[] cvvCodeArray = CVVCode.Text.ToCharArray();
                for (int i = 0; i < cvvCodeArray.Length; i++)
                {
                    if (!char.IsDigit(cvvCodeArray[i]))
                    {
                        System.Windows.MessageBox.Show("Вы указали неверные символы для CVV кода карты. ");
                        return;
                    }
                }
            }
            else
            {
                System.Windows.MessageBox.Show("Вы неверно ввели CVV код. CVV код - трехзначиное число.");
                return;
            }

            Random        rnd   = new Random();
            double        money = rnd.Next(100, 2500);
            SqlConnection myConnectionString = new SqlConnection(connectionString);
            string        mySelectQuery      = "SELECT * FROM BankCard WHERE Cardnumber = '" + cardNumber.Text + "'";

            using (SqlDataAdapter dataAdapter = new SqlDataAdapter(mySelectQuery, myConnectionString))
            {
                DataTable table = new DataTable();
                dataAdapter.Fill(table);
                if (table.Rows.Count > 0)
                {
                    System.Windows.MessageBox.Show("Это карта уже есть была привязана другим пользователем.");
                }
                else if (table.Rows.Count == 0)
                {
                    SqlCommand cmd = new SqlCommand();
                    cmd.CommandType = CommandType.Text;
                    cmd.CommandText = "INSERT BankCard (UserCode, CardNumber, UserSurname, UserName, ValidDate, CVVCode, UserMoney, CurrencyBuyCode, CurrencySellCode) VALUES ((SELECT UserCode FROM Users WHERE UserLogin = '******'),'" + cardNumber.Text + "', '" + userSurname.Text + "', '" + userName.Text + "', '" + cardExpiration.Text + "', " + Convert.ToInt32(CVVCode.Text) + ", '" + money + "', 1, 1)";
                    cmd.Connection  = myConnectionString;
                    myConnectionString.Open();
                    cmd.ExecuteNonQuery();
                    myConnectionString.Close();
                    System.Windows.MessageBox.Show("Карта добавлена!");
                    UserMenu userMenu = new UserMenu();
                    userMenu.Show();
                    this.Close();
                }
            }
        }
        private void SaveChanges(object sender, RoutedEventArgs e)
        {
            SqlConnection connection = new SqlConnection(connectionString);

            connection.Open();
            if (criterion.Text != string.Empty && searchCriterion.Text != string.Empty)
            {
                int uC = Convert.ToInt32(searchCriterion.Text);
                if (criterion.Text == "Логин")
                {
                    if (changingCriterion.Text != CheckUser.CheckUserLogin(changingCriterion.Text))
                    {
                        System.Windows.MessageBox.Show(CheckUser.CheckUserLogin(changingCriterion.Text));
                        return;
                    }
                    string mySelectQuery = "SELECT UserLogin FROM Users WHERE [UserLogin] = '" + changingCriterion.Text + "'";
                    using (SqlDataAdapter dataAdapter = new SqlDataAdapter(mySelectQuery, connection))
                    {
                        DataTable table = new DataTable();
                        dataAdapter.Fill(table);
                        if (table.Rows.Count > 0)
                        {
                            System.Windows.MessageBox.Show("Этот логин занят. Введите другой");
                            return;
                        }
                        else if (table.Rows.Count == 0)
                        {
                            using (SqlCommand lastCommnd = connection.CreateCommand())
                            {
                                lastCommnd.CommandText = "UPDATE Users SET UserLogin = @login WHERE UserCode = @code";
                                lastCommnd.Parameters.AddWithValue("@login", changingCriterion.Text);
                                lastCommnd.Parameters.AddWithValue("@code", uC);

                                lastCommnd.ExecuteNonQuery();
                            }
                        }
                    }
                }
                else if (criterion.Text == "Пароль")
                {
                    if (changingCriterion.Text != CheckUser.CheckUserPassword(changingCriterion.Text))
                    {
                        System.Windows.MessageBox.Show(CheckUser.CheckUserPassword(changingCriterion.Text));
                        return;
                    }
                    using (SqlCommand lastCommnd = connection.CreateCommand())
                    {
                        lastCommnd.CommandText = "UPDATE Users SET UserPassword = @password WHERE UserCode = @code";
                        lastCommnd.Parameters.AddWithValue("@password", changingCriterion.Text);
                        lastCommnd.Parameters.AddWithValue("@code", uC);

                        lastCommnd.ExecuteNonQuery();
                    }
                }
                else if (criterion.Text == "Статус администратора")
                {
                    if (changingCriterion.Text != CheckUser.CheckUserStatus(changingCriterion.Text))
                    {
                        System.Windows.MessageBox.Show(CheckUser.CheckUserStatus(changingCriterion.Text));
                        return;
                    }
                    using (SqlCommand lastCommnd = connection.CreateCommand())
                    {
                        lastCommnd.CommandText = "UPDATE Users SET AdministratorStatus = @status WHERE UserCode = @code";
                        lastCommnd.Parameters.AddWithValue("@status", changingCriterion.Text);
                        lastCommnd.Parameters.AddWithValue("@code", uC);

                        lastCommnd.ExecuteNonQuery();
                    }
                }
                else if (criterion.Text == "Имя")
                {
                    if (changingCriterion.Text != CheckUser.CheckUserName(changingCriterion.Text))
                    {
                        System.Windows.MessageBox.Show(CheckUser.CheckUserName(changingCriterion.Text));
                        return;
                    }
                    using (SqlCommand lastCommnd = connection.CreateCommand())
                    {
                        lastCommnd.CommandText = "UPDATE Users SET UserName = @name WHERE UserCode = @code";
                        lastCommnd.Parameters.AddWithValue("@name", changingCriterion.Text);
                        lastCommnd.Parameters.AddWithValue("@code", uC);

                        lastCommnd.ExecuteNonQuery();
                    }
                }
                else if (criterion.Text == "Фамилия")
                {
                    if (changingCriterion.Text != CheckUser.CheckUserSurname(changingCriterion.Text))
                    {
                        System.Windows.MessageBox.Show(CheckUser.CheckUserSurname(changingCriterion.Text));
                        return;
                    }
                    using (SqlCommand lastCommnd = connection.CreateCommand())
                    {
                        lastCommnd.CommandText = "UPDATE Users SET UserSurname = @surname WHERE UserCode = @code";
                        lastCommnd.Parameters.AddWithValue("@surname", changingCriterion.Text);
                        lastCommnd.Parameters.AddWithValue("@code", uC);

                        lastCommnd.ExecuteNonQuery();
                    }
                }
            }
            else
            {
                System.Windows.MessageBox.Show("Вы не выбрали данные для изменения.");
                return;
            }
            MessageBoxResult mboxResult = System.Windows.MessageBox.Show("Данные обновлены. Желаете изменить что-нибудь еще?", "Предупреждение", MessageBoxButton.YesNo);

            if (mboxResult == MessageBoxResult.No)
            {
                ChangeUserData changeUserData = new ChangeUserData();
                changeUserData.Show();
                this.Close();
            }
            connection.Close();
        }