private void UpdateUsers(object sender, EventArgs e) { // Подключение к БД con.Open(); // Проверка ввода данных if (textBox1.Text != "" && textBox2.Text != "" && textBox3.Text != "" && textBox4.Text != "" && maskedTextBox1.MaskCompleted == true) { // Проверка указанной почты на существование string CheckMail = ""; CheckMail = new CheckExistMail().CheckMail(textBox3.Text); // Если указанная почта существует if (CheckMail == "Почтовый ящик существует") { // Изменение данных пользователя в зависимости от его роли switch (comboBox1.SelectedIndex) { // Изменение администратора case 0: // Проверка указанной даты checkData(); // Если указанная дата ещё не наступила if (CheckData == 1) { // Изменение данных о преподавателе SqlCommand StrPrc4 = new SqlCommand("Teachers_update", con); StrPrc4.CommandType = CommandType.StoredProcedure; StrPrc4.Parameters.AddWithValue("@id_teacher", Convert.ToInt32(datagr1.CurrentRow.Cells[5].Value.ToString())); StrPrc4.Parameters.AddWithValue("@Unique_Naim", datagr1.CurrentRow.Cells[6].Value.ToString()); StrPrc4.Parameters.AddWithValue("@User_End_Data", UserData); StrPrc4.Parameters.AddWithValue("@KolvoNeRegStudents", textBox4.Text); StrPrc4.ExecuteNonQuery(); // Изменение данных о пользователе SqlCommand StrPrc1 = new SqlCommand("users_update", con); StrPrc1.CommandType = CommandType.StoredProcedure; StrPrc1.Parameters.AddWithValue("@id_user", Convert.ToInt32(datagr1.CurrentRow.Cells[0].Value.ToString())); StrPrc1.Parameters.AddWithValue("@User_Login", textBox1.Text); StrPrc1.Parameters.AddWithValue("@User_Password", new Shifr().Shifrovka(textBox2.Text, "Pass")); StrPrc1.Parameters.AddWithValue("@User_Mail", new Shifr().Shifrovka(textBox3.Text, "Mail")); StrPrc1.Parameters.AddWithValue("@Fam", ""); StrPrc1.Parameters.AddWithValue("@Imya", ""); StrPrc1.Parameters.AddWithValue("@Otch", ""); StrPrc1.Parameters.AddWithValue("@Study", ""); StrPrc1.Parameters.AddWithValue("@Work", ""); StrPrc1.Parameters.AddWithValue("@Year", ""); StrPrc1.Parameters.AddWithValue("@Old", ""); StrPrc1.Parameters.AddWithValue("@UserStatus", 0); StrPrc1.Parameters.AddWithValue("@Teacher_id", Convert.ToInt32(datagr1.CurrentRow.Cells[4].Value.ToString())); StrPrc1.ExecuteNonQuery(); // Вывод сообщения CreateInfo("Данные изменены!", "lime", panel1); // Заполнение datagr1 new SQL_Query().UpdateDatagr("select * from CreateTableForUpdateUsers", "users", datagr1); } break; // Изменение преподавателя case 1: // Проверка указанной даты checkData(); // Если указанная дата ещё не наступила if (CheckData == 1) { // Изменение данных о преподавателе SqlCommand StrPrc5 = new SqlCommand("Teachers_update", con); StrPrc5.CommandType = CommandType.StoredProcedure; StrPrc5.Parameters.AddWithValue("@id_teacher", Convert.ToInt32(datagr1.CurrentRow.Cells[5].Value.ToString())); StrPrc5.Parameters.AddWithValue("@Unique_Naim", datagr1.CurrentRow.Cells[6].Value.ToString()); StrPrc5.Parameters.AddWithValue("@User_End_Data", UserData); StrPrc5.Parameters.AddWithValue("@KolvoNeRegStudents", textBox4.Text); StrPrc5.ExecuteNonQuery(); // Изменение данных о пользователе SqlCommand StrPrc2 = new SqlCommand("users_update", con); StrPrc2.CommandType = CommandType.StoredProcedure; StrPrc2.Parameters.AddWithValue("@id_user", Convert.ToInt32(datagr1.CurrentRow.Cells[0].Value.ToString())); StrPrc2.Parameters.AddWithValue("@User_Login", textBox1.Text); StrPrc2.Parameters.AddWithValue("@User_Password", new Shifr().Shifrovka(textBox2.Text, "Pass")); StrPrc2.Parameters.AddWithValue("@User_Mail", new Shifr().Shifrovka(textBox3.Text, "Mail")); StrPrc2.Parameters.AddWithValue("@Fam", ""); StrPrc2.Parameters.AddWithValue("@Imya", ""); StrPrc2.Parameters.AddWithValue("@Otch", ""); StrPrc2.Parameters.AddWithValue("@Study", ""); StrPrc2.Parameters.AddWithValue("@Work", ""); StrPrc2.Parameters.AddWithValue("@Year", ""); StrPrc2.Parameters.AddWithValue("@Old", ""); StrPrc2.Parameters.AddWithValue("@UserStatus", 0); StrPrc2.Parameters.AddWithValue("@Teacher_id", Convert.ToInt32(datagr1.CurrentRow.Cells[4].Value.ToString())); StrPrc2.ExecuteNonQuery(); // Вывод сообщения CreateInfo("Данные изменены!", "lime", panel1); // Заполнение datagr1 new SQL_Query().UpdateDatagr("select * from CreateTableForUpdateUsers", "users", datagr1); } break; // Изменение студента case 2: // Изменение данных о пользователе SqlCommand StrPrc3 = new SqlCommand("users_update", con); StrPrc3.CommandType = CommandType.StoredProcedure; StrPrc3.Parameters.AddWithValue("@id_user", Convert.ToInt32(datagr1.CurrentRow.Cells[0].Value.ToString())); StrPrc3.Parameters.AddWithValue("@User_Login", textBox1.Text); StrPrc3.Parameters.AddWithValue("@User_Password", new Shifr().Shifrovka(textBox2.Text, "Pass")); StrPrc3.Parameters.AddWithValue("@User_Mail", new Shifr().Shifrovka(textBox3.Text, "Mail")); StrPrc3.Parameters.AddWithValue("@Fam", ""); StrPrc3.Parameters.AddWithValue("@Imya", ""); StrPrc3.Parameters.AddWithValue("@Otch", ""); StrPrc3.Parameters.AddWithValue("@Study", ""); StrPrc3.Parameters.AddWithValue("@Work", ""); StrPrc3.Parameters.AddWithValue("@Year", ""); StrPrc3.Parameters.AddWithValue("@Old", ""); StrPrc3.Parameters.AddWithValue("@UserStatus", 0); StrPrc3.Parameters.AddWithValue("@Teacher_id", Convert.ToInt32(datagr1.CurrentRow.Cells[4].Value.ToString())); StrPrc3.ExecuteNonQuery(); // Вывод сообщения CreateInfo("Данные изменены!", "lime", panel1); // Заполнение datagr1 new SQL_Query().UpdateDatagr("select * from CreateTableForUpdateUsers", "users", datagr1); break; } } else { // Вывод сообщения CreateInfo(CheckMail, "red", panel1); } } else { // Вывод сообщения CreateInfo("Для изменения данных необходимо выбрать пользователя и заполнить все поля!", "red", panel1); } // Обновление формы datagr1.CurrentCell = null; comboBox1.SelectedIndex = -1; comboBox2.SelectedIndex = -1; textBox1.Text = ""; textBox2.Text = ""; textBox3.Text = ""; textBox4.Text = ""; maskedTextBox1.Text = ""; textBox6.Text = ""; checkBox1.Checked = false; // Отключение от БД con.Close(); }
private void GetRegistretion(object sender, EventArgs e) { // Обнуление переменных int TeacherId = 0; string EndData = ""; // Подключение к БД con.Open(); // Проверка выбранной формы регистрации switch (Registr) { // Регистрация студента case 1: // Проверка на ввод данных if ((panel3.Controls["textbox1"] as TextBox).Text != "") { // Проверка на ввод данных if ((panel3.Controls["textbox2"] as TextBox).Text != "" && (panel3.Controls["textbox3"] as TextBox).Text != "") { // Проверка на существование преподавателя с указанным логином TeacherId = Convert.ToInt32(new SQL_Query().GetInfoFromBD("select id_user as 'id' from users where User_Login = '******'")); // если преподаватель с указанным логином существует if (TeacherId != 0) { // Проверка на существование пользователя с указанным логином LoginCheck = new SQL_Query().GetInfoFromBD("select User_Mail from users where User_Login='******'"); // Если пользователя с указанным логином не существует if (LoginCheck == "0") { // Проверка роли по указанному логину преподавателя string CheckRole = new SQL_Query().GetInfoFromBD("select Naim as 'RoleName' from Role where users_id = '" + TeacherId + "'"); // Если указанный логин является логином преподавателя if (CheckRole == "Teacher") { // Проверка указанной почты на существование string CheckMail = ""; CheckMail = new CheckExistMail().CheckMail(panel3.Controls["textbox3"].Text); // Если указанная почта существует if (CheckMail == "Почтовый ящик существует") { // Выбор номера преподавателя студента int PrepodID = Convert.ToInt32(new SQL_Query().GetInfoFromBD("select Teacher_id as 'ID' from users where id_user = '******'")); // Выбор количества доступных регистраций студентов у преподавателя int studentkolvo = Convert.ToInt32(new SQL_Query().GetInfoFromBD("select KolvoNeRegStudents as 'kolvostudents' from Teachers where id_teacher = '" + PrepodID + "'")); // Если количество возможных регистраций студентов не равно 0 if (studentkolvo > 0) { // Генерация пароля для студента string password = GetPassword(); try { // Отправка пароля по почте MailMessage mail = new MailMessage("*****@*****.**", (panel3.Controls["textbox3"] as TextBox).Text, "Регистрация в программе Psico", "Вы успешно зарегистрировались в программе Psico.\r\n" + "Ваши данные для авторизации:\r\n" + " Логин: " + panel3.Controls["textbox2"].Text + ".\r\n" + " Пароль: " + password + ".\r\n"); SmtpClient client = new SmtpClient("smtp.yandex.ru"); client.Port = 587; client.Credentials = new NetworkCredential("*****@*****.**", "DogCatPigMonkeyLionTiger"); client.EnableSsl = true; client.Send(mail); } catch { CreateInfo("Сообщение с вашим паролем не было отправлено, обратитесь к администратору!", "red", panel1); } // Запись данных в БД SqlCommand StrPrc2 = new SqlCommand("users_add", con); StrPrc2.CommandType = CommandType.StoredProcedure; StrPrc2.Parameters.AddWithValue("@User_Login", (panel3.Controls["textbox2"] as TextBox).Text); StrPrc2.Parameters.AddWithValue("@User_Password", new Shifr().Shifrovka(password, "Pass")); StrPrc2.Parameters.AddWithValue("@User_Mail", new Shifr().Shifrovka((panel3.Controls["textbox3"] as TextBox).Text, "Mail")); StrPrc2.Parameters.AddWithValue("@UserStatus", 0); StrPrc2.Parameters.AddWithValue("@Teacher_id", PrepodID); StrPrc2.ExecuteNonQuery(); // Изменение количества возможных регистраций студентов у преподавателя на 1 new SQL_Query().UpdateOneCell("UPDATE Teachers SET KolvoNeRegStudents=" + (studentkolvo - 1) + " WHERE id_teacher = " + PrepodID + ""); // Выбор номера добавленного пользователя int UserId = Convert.ToInt32(new SQL_Query().GetInfoFromBD("select id_user as 'id' from users where User_Login = '******'")); // Запись данных В БД SqlCommand StrPrc3 = new SqlCommand("Role_add", con); StrPrc3.CommandType = CommandType.StoredProcedure; StrPrc3.Parameters.AddWithValue("@Naim", "Student"); StrPrc3.Parameters.AddWithValue("@Users_id", UserId); StrPrc3.Parameters.AddWithValue("@Dostup_id", 3); StrPrc3.ExecuteNonQuery(); // Вывод сообщения MessageBox.Show("Вы успешно зарегистрировались", "Отлично!", MessageBoxButtons.OK, MessageBoxIcon.Information); // Удаление динамической созданной Panel new Autorization().CloseInfo(); // Переход на форму авторизации OpenAutorizationForm(); } else { CreateInfo("Превышено максимально возможное число студентов у преподавателя!", "red", panel1); } } else { CreateInfo(CheckMail, "red", panel1); } } else { CreateInfo("Преподавателя с таким логином не существует!", "red", panel1); } } else { CreateInfo("Пользователь с таким логином уже существует!", "red", panel1); } } else { CreateInfo("Преподавателя с таким логином не существует!", "red", panel1); } } else { CreateInfo("Заполнены не все поля для успешной регистрации! Пожалуйста заполните все необходимые поля для регистрации.", "red", panel1); } } else { CreateInfo("Вы не ввели логин преподавателя, без него регистрация невозможна!", "red", panel1); } break; // Регистрация преподавателя case 2: // Проверка на ввод данных if ((panel3.Controls["textbox4"] as TextBox).Text != "") { // Выбор ключа активации программного продукта KeyCheck = new SQL_Query().GetInfoFromBD("select DefenderKey from defender"); // Проверка указанного ключа активации на корректность if ((panel3.Controls["textbox4"] as TextBox).Text == new Shifr().DeShifrovka(KeyCheck, "Kod")) { // Проверка на ввод данных if ((panel3.Controls["textbox5"] as TextBox).Text != "" && (panel3.Controls["textbox6"] as TextBox).Text != "" && (panel3.Controls["textbox7"] as TextBox).Text != "") { // Проверка на существование указанного уникального имени в БД checkteacherUniqueNaim = Convert.ToInt32(new SQL_Query().GetInfoFromBD("select id_teacher from Teachers where Unique_Naim='" + (panel3.Controls["textbox8"].Text) + "'")); // Если указанное уникальное имя не зарегистрированно в БД if (checkteacherUniqueNaim == 0) { // Проверка на существование указанного логина в БД LoginCheck = new SQL_Query().GetInfoFromBD("select User_Mail from users where User_Login='******'"); // Если указанный логин не зарегистрирован в БД if (LoginCheck == "0") { // Проверка указанной почты на существование string CheckMail = ""; CheckMail = new CheckExistMail().CheckMail(panel3.Controls["textbox6"].Text); // Если указанная почта существует if (CheckMail == "Почтовый ящик существует") { // Выбор сегодняшней даты string Day = new SQL_Query().GetInfoFromBD("select Day(getdate()) as 'Day'"); if (Convert.ToInt32(Day) < 10) { Day = "0" + Day; } string Month = (Convert.ToInt32(new SQL_Query().GetInfoFromBD("select MONTH(getdate()) as 'Month'")) + 1).ToString(); if (Convert.ToInt32(Month) < 10) { Month = "0" + Month; } string Year = new SQL_Query().GetInfoFromBD("select Year(getdate()) as 'Year'"); EndData = Year + "-" + Month + "-" + Day; // Генерация пароля для преподавателя string password = GetPassword(); try { // Отправка пароля по почте MailMessage mail = new MailMessage("*****@*****.**", (panel3.Controls["textbox6"] as TextBox).Text, "Регистрация в программе Psico", "Вы успешно зарегистрировались в программе Psico.\r\n" + "Ваши данные для авторизации:\r\n" + " Логин: " + panel3.Controls["textbox5"].Text + ".\r\n" + " Пароль: " + password + ".\r\n" + "Дата окончания лицензии: " + EndData + ".\r\n" + "Для изменения даты окончания лицензии необходимо обращаться к администратору."); SmtpClient client = new SmtpClient("smtp.yandex.ru"); client.Port = 587; client.Credentials = new NetworkCredential("*****@*****.**", "DogCatPigMonkeyLionTiger"); client.EnableSsl = true; client.Send(mail); } catch { CreateInfo("Сообщение с вашим паролем не было отправлено, обратитесь к администратору!", "red", panel1); } // Запись данных В БД SqlCommand StrPrc1 = new SqlCommand("Teachers_add", con); StrPrc1.CommandType = CommandType.StoredProcedure; StrPrc1.Parameters.AddWithValue("@Unique_Naim", (panel3.Controls["textbox8"] as TextBox).Text); StrPrc1.Parameters.AddWithValue("@User_End_Data", EndData); StrPrc1.Parameters.AddWithValue("@KolvoNeRegStudents", Convert.ToInt32((panel3.Controls["textbox7"] as TextBox).Text)); StrPrc1.ExecuteNonQuery(); // Выбор номера добавленного преподавателя TeacherId = Convert.ToInt32(new SQL_Query().GetInfoFromBD("select id_teacher as 'id' from Teachers where Unique_Naim='" + (panel3.Controls["textbox8"] as TextBox).Text + "'")); // Запись данных В БД SqlCommand StrPrc2 = new SqlCommand("users_add", con); StrPrc2.CommandType = CommandType.StoredProcedure; StrPrc2.Parameters.AddWithValue("@User_Login", (panel3.Controls["textbox5"] as TextBox).Text); StrPrc2.Parameters.AddWithValue("@User_Password", new Shifr().Shifrovka(password, "Pass")); StrPrc2.Parameters.AddWithValue("@User_Mail", new Shifr().Shifrovka((panel3.Controls["textbox6"] as TextBox).Text, "Mail")); StrPrc2.Parameters.AddWithValue("@UserStatus", 0); StrPrc2.Parameters.AddWithValue("@Teacher_id", TeacherId); StrPrc2.ExecuteNonQuery(); // Выбор номера добавленного пользователя int UserId = Convert.ToInt32(new SQL_Query().GetInfoFromBD("select id_user as 'id' from users where User_Login = '******'")); // Запись данных В БД SqlCommand StrPrc3 = new SqlCommand("Role_add", con); StrPrc3.CommandType = CommandType.StoredProcedure; StrPrc3.Parameters.AddWithValue("@Naim", "Teacher"); StrPrc3.Parameters.AddWithValue("@Users_id", UserId); StrPrc3.Parameters.AddWithValue("@Dostup_id", 2); StrPrc3.ExecuteNonQuery(); // Генерация нового ключа активации string key = new Shifr().Shifrovka(GetKey(), "Kod"); // Обновление ключа активации программного продукта new SQL_Query().UpdateOneCell("UPDATE defender SET DefenderKey='" + key + "' WHERE id_defend = 1"); //Вывод сообщения MessageBox.Show("Вы успешно зарегистрировались", "Отлично!", MessageBoxButtons.OK, MessageBoxIcon.Information); // Удаление динамической созданной Panel new Autorization().CloseInfo(); // Переход на форму авторизации OpenAutorizationForm(); } else { CreateInfo(CheckMail, "red", panel1); } } else { CreateInfo("Пользователь с таким логином уже существует!", "red", panel1); } } else { CreateInfo("Введённое уникальное имя уже существует, выберите другое.", "red", panel1); } } else { CreateInfo("Заполнены не все поля для успешной регистрации! Пожалуйста заполните все необходимые поля для регистрации.", "red", panel1); } } else { CreateInfo("Введённый ключ активации неверен! Пожалуйста убедитесь в правильности введённого ключа активации и попробуйде ещё раз.", "red", panel1); (panel3.Controls["textbox4"] as TextBox).Text = ""; } } else { CreateInfo("Ключ активации не был введён, пожалуйста введите ключ активации для регистрации!", "red", panel1); } break; // Если пользователь не выбрал форму регистрации default: // Вывод сообщения CreateInfo("Выберите способ регистрации!", "red", panel1); break; } con.Close(); }