Ejemplo n.º 1
0
        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();
        }
Ejemplo n.º 2
0
        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();
        }