public void Button_Click_Check(object sender, RoutedEventArgs e) { string name = textBoxname.Text.Trim(); string secondname = textBoxsecondname.Text.Trim(); string email = textBoxemail.Text.Trim(); string login = textBoxlogin.Text.Trim(); string pass = textBoxpass.Password.Trim(); string repeatpass = textBoxrepeatpass.Password.Trim(); string post = comboBoxpost.Text; string appDir = Environment.CurrentDirectory; string Opened = appDir + "/Sound/Opened.wav"; string Error = appDir + "/Sound/Error.wav"; string Gun = appDir + "/Sound/Gun.wav"; string Exit = appDir + "/Sound/Exit.wav"; Boolean isUserExists() { DB db = new DB(); DataTable table = new DataTable(); MySqlDataAdapter adapter = new MySqlDataAdapter(); MySqlCommand command = new MySqlCommand("SELECT * FROM `users`WHERE `name`=@N AND `secondname`=@sN AND `email`=@eU AND `post`=@PS", db.getConnection()); command.Parameters.Add("@N", MySqlDbType.VarChar).Value = textBoxname.Text; command.Parameters.Add("@sN", MySqlDbType.VarChar).Value = textBoxsecondname.Text; command.Parameters.Add("@eU", MySqlDbType.VarChar).Value = textBoxemail.Text; command.Parameters.Add("@PS", MySqlDbType.VarChar).Value = comboBoxpost.Text; adapter.SelectCommand = command; adapter.Fill(table); if (table.Rows.Count > 0) { return(true); } else { return(false); } } Boolean Check_login() { DB db = new DB(); DataTable table = new DataTable(); MySqlDataAdapter adapter = new MySqlDataAdapter(); MySqlCommand command1 = new MySqlCommand("SELECT * FROM `users` WHERE `login`=@log", db.getConnection()); command1.Parameters.Add("@log", MySqlDbType.VarChar).Value = textBoxlogin.Text; adapter.SelectCommand = command1; adapter.Fill(table); if (table.Rows.Count > 0) { _mpBgr.Open(new Uri(@Error, UriKind.Absolute)); _mpBgr.Play(); Alarm.Text = "Такой логин уже используется"; Alarm.Visibility = Visibility.Visible; return(true); } else { return(false); } } if (post == "") { comboBoxpost.Background = new SolidColorBrush(Color.FromRgb(204, 0, 0)); comboBoxpost.ToolTip = "Это поле введено не корректно!"; _mpBgr.Open(new Uri(@Error, UriKind.Absolute)); _mpBgr.Play(); } else { comboBoxpost.Background = new SolidColorBrush(Color.FromRgb(221, 221, 221)); comboBoxpost.ToolTip = "Это поле введено корректно!"; if (name != "") { textBoxname.ToolTip = "Это поле введено корректно!"; textBoxname.Background = new SolidColorBrush(Color.FromRgb(0, 220, 0)); } else { textBoxname.ToolTip = "Это поле введено не корректно!"; textBoxname.Background = new SolidColorBrush(Color.FromRgb(204, 0, 0)); _mpBgr.Open(new Uri(@Error, UriKind.Absolute)); _mpBgr.Play(); } if (secondname != "") { textBoxsecondname.ToolTip = "Это поле введено корректно!"; textBoxsecondname.Background = new SolidColorBrush(Color.FromRgb(0, 220, 0)); } else { textBoxsecondname.ToolTip = "Это поле введено не корректно!"; textBoxsecondname.Background = new SolidColorBrush(Color.FromRgb(204, 0, 0)); _mpBgr.Open(new Uri(@Error, UriKind.Absolute)); _mpBgr.Play(); } if (email == "") { textBoxemail.ToolTip = "Это поле введено не корректно!"; textBoxemail.Background = new SolidColorBrush(Color.FromRgb(204, 0, 0)); _mpBgr.Open(new Uri(@Error, UriKind.Absolute)); _mpBgr.Play(); } if (login == "") { _mpBgr.Open(new Uri(@Error, UriKind.Absolute)); _mpBgr.Play(); textBoxlogin.ToolTip = "Это поле введено не корректно!"; textBoxlogin.Background = new SolidColorBrush(Color.FromRgb(204, 0, 0)); } if (pass == "") { _mpBgr.Open(new Uri(@Error, UriKind.Absolute)); _mpBgr.Play(); textBoxpass.ToolTip = "Это поле введено не корректно!"; textBoxpass.Background = new SolidColorBrush(Color.FromRgb(204, 0, 0)); } if (repeatpass == "") { _mpBgr.Open(new Uri(@Error, UriKind.Absolute)); _mpBgr.Play(); textBoxrepeatpass.ToolTip = "Это поле введено не корректно!"; textBoxrepeatpass.Background = new SolidColorBrush(Color.FromRgb(204, 0, 0)); } if (email.Length < 5) { _mpBgr.Open(new Uri(@Error, UriKind.Absolute)); _mpBgr.Play(); textBoxemail.ToolTip = "Это поле введено не корректно!"; textBoxemail.Background = new SolidColorBrush(Color.FromRgb(204, 0, 0)); } else if (login.Length < 5 || login.Length > 15) { _mpBgr.Open(new Uri(@Error, UriKind.Absolute)); _mpBgr.Play(); textBoxemail.ToolTip = "Это поле введено корректно!"; textBoxemail.Background = new SolidColorBrush(Color.FromRgb(0, 220, 0)); textBoxlogin.ToolTip = "Это поле введено не корректно!"; textBoxlogin.Background = new SolidColorBrush(Color.FromRgb(204, 0, 0)); } else if (pass.Length < 8 || !((pass.Contains("_") || (pass.Contains("@") || (pass.Contains("/") || (pass.Contains("#") || (pass.Contains("-")))))))) { _mpBgr.Open(new Uri(@Error, UriKind.Absolute)); _mpBgr.Play(); textBoxlogin.ToolTip = "Это поле введено корректно!"; textBoxemail.Background = new SolidColorBrush(Color.FromRgb(0, 220, 0)); textBoxlogin.Background = new SolidColorBrush(Color.FromRgb(0, 220, 0)); textBoxpass.ToolTip = "Это поле введено не корректно!"; textBoxpass.Background = new SolidColorBrush(Color.FromRgb(204, 0, 0)); } else if (pass != repeatpass) { _mpBgr.Open(new Uri(@Error, UriKind.Absolute)); _mpBgr.Play(); textBoxpass.ToolTip = "Это поле введено корректно!"; textBoxemail.Background = new SolidColorBrush(Color.FromRgb(0, 220, 0)); textBoxlogin.Background = new SolidColorBrush(Color.FromRgb(0, 220, 0)); textBoxpass.Background = new SolidColorBrush(Color.FromRgb(0, 220, 0)); textBoxrepeatpass.ToolTip = "Это поле введено не корректно!"; textBoxrepeatpass.Background = new SolidColorBrush(Color.FromRgb(204, 0, 0)); } else { textBoxname.Background = new SolidColorBrush(Color.FromRgb(0, 220, 0)); textBoxsecondname.Background = new SolidColorBrush(Color.FromRgb(0, 220, 0)); textBoxemail.Background = new SolidColorBrush(Color.FromRgb(0, 220, 0)); textBoxlogin.Background = new SolidColorBrush(Color.FromRgb(0, 220, 0)); textBoxpass.Background = new SolidColorBrush(Color.FromRgb(0, 220, 0)); textBoxrepeatpass.Background = new SolidColorBrush(Color.FromRgb(0, 220, 0)); comboBoxpost.Background = new SolidColorBrush(Color.FromRgb(0, 220, 0)); if (isUserExists()) { if (Check_login()) { } else { DB db = new DB(); MySqlCommand command = new MySqlCommand("Update `users` SET login=@log, password=@pass WHERE name=@name AND secondname=@secondname AND email=@email", db.getConnection()); MySqlCommand command2 = new MySqlCommand("SELECT `id` FROM `users` WHERE email=@email1 ", db.getConnection()); command.Parameters.AddWithValue("@name", name); command.Parameters.AddWithValue("@secondname", secondname); command.Parameters.AddWithValue("@email", email); command2.Parameters.Add("@email1", MySqlDbType.VarChar).Value = email; db.openConnection(); using (MySqlDataReader reader = command2.ExecuteReader()) { while (reader.Read()) { var id = reader["id"].ToString(); int id_user = int.Parse(id); id_user = id_user % 88; string passnonhesh = textBoxpass.Password; var hasher = new SHA512Managed(); var unhashed = System.Text.Encoding.Unicode.GetBytes(passnonhesh); var hashed = hasher.ComputeHash(unhashed); var hashedPassword = Convert.ToBase64String(hashed); hashedPassword = hashedPassword.Insert(id_user, Salt); command.Parameters.Add("@pass", MySqlDbType.VarChar).Value = hashedPassword; } } command.Parameters.Add("@log", MySqlDbType.VarChar).Value = textBoxlogin.Text; db.openConnection(); if (command.ExecuteNonQuery() == 1) { Alarm.Visibility = Visibility.Hidden; _mpBgr.Open(new Uri(@Gun, UriKind.Absolute)); _mpBgr.Play(); db.closeConnection(); this.Close(); MainWindow MainWindow = new MainWindow(); MainWindow.Show(); } db.closeConnection(); } } else { _mpBgr.Open(new Uri(@Error, UriKind.Absolute)); _mpBgr.Play(); Alarm.Text = "Вас либо нет в базе данных, либо вы неправильно ввели данные!Обращайтесь в поддержку."; Alarm.Visibility = Visibility.Visible; } } } }