Exemplo n.º 1
0
        private void CheckUserEndData()
        {
            // Выбор номера преподавателя студента
            int TeacherID = Convert.ToInt32(new SQL_Query().GetInfoFromBD("select Teacher_id from users where id_user = "******""));

            // Выбор даты окончания лицензии у студента
            string UserEndDate = new SQL_Query().GetInfoFromBD("select user_end_data from Teachers where id_teacher = " + TeacherID + "");

            // Отдельный выбор года
            char   year1 = UserEndDate[6];
            char   year2 = UserEndDate[7];
            char   year3 = UserEndDate[8];
            char   year4 = UserEndDate[9];
            string Year  = year1.ToString() + year2.ToString() + year3.ToString() + year4.ToString();

            // Отдельный выбор месяца
            char   Month1 = UserEndDate[3];
            char   Month2 = UserEndDate[4];
            string Month  = Month1.ToString() + Month2.ToString();

            // Отдельный выбор дня
            char   Day1 = UserEndDate[0];
            char   Day2 = UserEndDate[1];
            string Day  = Day1.ToString() + Day2.ToString();

            // Выбор сегодняшей даты
            int Nowyear = Convert.ToInt32(new SQL_Query().GetInfoFromBD("select Year(getdate()) as 'year'"));

            // Выбор сегодняшей даты
            string NowMonth = new SQL_Query().GetInfoFromBD("select Month(getdate()) as 'Month'");

            if (Convert.ToInt32(NowMonth) < 10)
            {
                NowMonth = "0" + NowMonth;
            }

            // Выбор сегодняшей даты
            string NowDay = new SQL_Query().GetInfoFromBD("select Day(getdate()) as 'Day'");

            if (Convert.ToInt32(NowDay) < 10)
            {
                NowDay = "0" + NowDay;
            }

            // Преобразование собранных данных в даты
            DateTime NowData  = DateTime.Parse("" + NowDay + "/" + NowMonth + "/" + Nowyear + "");
            DateTime UserData = DateTime.Parse("" + Day + "/" + Month + "/" + Year + "");

            // Сравнение даты окончания лицензии с сегодняшней датой
            if (NowData > UserData)
            {
                // Пользователь может войти
                CheckData = 1;
            }
            else
            {
                // Пользователю отказано в доступе
                CheckData = 0;
            }
        }
Exemplo n.º 2
0
        private void FormLoad(object sender, EventArgs e)
        {
            // Адаптация под разрешение экрана
            FormAlignment();

            // Проверка на существование ключа активации программного продукта
            string CheckLicenseKey = new SQL_Query().GetInfoFromBD("select defenderkey from defender");

            if (CheckLicenseKey == "0")
            {
                // Генерация нового ключа активации
                string key = new Shifr().Shifrovka(GetKey(), "Kod");

                // Обновление ключа активации программного продукта
                new SQL_Query().UpdateOneCell("insert into defender(DefenderKey) values ('" + key + "')");
            }
        }
Exemplo n.º 3
0
        private void HotKeys(object sender, KeyEventArgs e)
        {
            // Сочитание клавиш Ctrl + Shift + D
            if (e.Control && e.Shift && e.KeyCode == Keys.D)
            {
                // Открытие формы изменения строки подключения
                CreateWindowForBDSettings();
            }


            // Сочитание клавиш Ctrl + Shift + R
            if (e.Control && e.Shift && e.KeyCode == Keys.R)
            {
                string CheckUsers = new SQL_Query().GetInfoFromBD("select id_user from users");

                if (CheckUsers == "0")
                {
                    // Открытие формы добавление первого пользователя
                    new AddUser().Show();
                    Hide();
                }
            }
        }
Exemplo n.º 4
0
        private void OpenNextForm(object sender, EventArgs e)
        {
            // Проверка на существование диагностических задач в программе
            string checkZadacha = new SQL_Query().GetInfoFromBD("select zapros from zadacha");

            if (checkZadacha != "0")
            {
                // Обнуление переменных
                Program.AllT           = 0;
                Program.fenomenologiya = "";
                Program.glavsved       = "";
                Program.gipotezi       = "";
                Program.obsledovaniya  = "";
                Program.zakluch        = "";
                Program.zaklOTV        = 0;
                Program.NeVernOtv      = 0;
                Program.diagnoz        = 0;
                Program.WordOpen       = 0;
                Program.StageName.Clear();
                Program.StageSec.Clear();
                Program.NumberStage.Clear();
                Program.KolvoOpenZakl = 0;
                error = 0;

                // Запись в переменную выбранного номера диагностической задачи
                Program.NomerZadachi = Convert.ToInt32(comboBox1.SelectedValue);

                // Запись данных о начале решения диагностической задачи
                Program.checkopenzadacha = 1;

                // Цикл выбирающий все решённые задачи
                for (int i = 1; i < kolvoreshzadach; i++)
                {
                    // Проверка выбранной диагностической задачи на решённость
                    if (Convert.ToString(Program.NomerZadachi) == Convert.ToString(datagr.Rows[i - 1].Cells[0].Value))
                    {
                        // Вывод сообщения
                        CreateInfo("Данная диагностическая задача была уже решена!", "red", panel1);

                        // Запись в переменную значение об ошибке
                        error = 1;
                    }
                }

                // Если выбранная диагностическая задача не решена
                if (error == 0)
                {
                    try
                    {
                        // Вставка разрыва страницы
                        wordinsert.CreateShift();

                        // Запись данных в протокол
                        Program.Insert = "Диагностическая задача №" + Program.NomerZadachi + "";
                        wordinsert.Ins();

                        // Удаление данных о последних выбранных вариантах ответа пользователя
                        new SQL_Query().DeleteInfoFromBD("delete from Lastotv where users_id = " + Program.user + "");

                        // Удаление данных о всех выбранных вариантах ответа пользователя
                        new SQL_Query().DeleteInfoFromBD("delete from OtvSelected where users_id = " + Program.user + "");

                        // Удаление динамической созданной Panel
                        new Autorization().CloseInfo();

                        // Открытие главной формы диагностической задачи
                        Zadacha zadacha = new Zadacha();
                        zadacha.Show();
                        Close();
                    }
                    catch
                    {
                        CreateInfo("Отсутствует шаблон протокола! Обратитесь к администратору.", "red", panel1);
                    }
                }
            }
            else
            {
                CreateInfo("В программе отсутствуют диагностические задачи!", "red", panel1);
            }
        }
Exemplo n.º 5
0
        private void checkData()
        {
            //Выбор сегодняшней даты
            int    Nowyear  = Convert.ToInt32(new SQL_Query().GetInfoFromBD("select Year(getdate()) as 'year'"));
            string NowMonth = new SQL_Query().GetInfoFromBD("select Month(getdate()) as 'Month'");

            if (Convert.ToInt32(NowMonth) < 10)
            {
                NowMonth = "0" + NowMonth;
            }
            string NowDay = new SQL_Query().GetInfoFromBD("select Day(getdate()) as 'Day'");

            if (Convert.ToInt32(NowDay) < 10)
            {
                NowDay = "0" + NowDay;
            }

            // Выбор отдельно года
            char   year1 = maskedTextBox1.Text[6];
            char   year2 = maskedTextBox1.Text[7];
            char   year3 = maskedTextBox1.Text[8];
            char   year4 = maskedTextBox1.Text[9];
            string Year  = year1.ToString() + year2.ToString() + year3.ToString() + year4.ToString();

            // Выбор отдельно месяца
            char   Month1 = maskedTextBox1.Text[3];
            char   Month2 = maskedTextBox1.Text[4];
            string Month  = Month1.ToString() + Month2.ToString();

            // Выбор отдельно день
            char   Day1 = maskedTextBox1.Text[0];
            char   Day2 = maskedTextBox1.Text[1];
            string Day  = Day1.ToString() + Day2.ToString();

            // Проверка указанного года на корректность
            if (Convert.ToInt16(Year) < 2100)
            {
                // Проверка указанного месяца и дня на корректность
                if (Convert.ToInt16(Month) != 00 && Convert.ToInt16(Day) != 00)
                {
                    // Проверка указанного месяца н корректность
                    if (Convert.ToInt32(Month) <= 12)
                    {
                        // Проверка указанного дня на корректность
                        if (Convert.ToInt32(Day) <= 28)
                        {
                            // Преобразование выбранных данных в даты
                            DateTime NowData = DateTime.Parse("" + NowDay + "/" + NowMonth + "/" + Nowyear + "");
                            UserData = DateTime.Parse("" + Day + "/" + Month + "/" + Year + "");

                            // Если указанная дата ещё не наступила
                            if (UserData > NowData)
                            {
                                CheckData = 1;
                            }
                            else
                            {
                                CheckData = 0;
                                CreateInfo("Выбранная вами дата окончания уже прошла!", "red", panel1);
                            }
                        }
                        else
                        {
                            CreateInfo("Максимально возможный для выбора день - 28!", "red", panel1);
                        }
                    }
                    else
                    {
                        CreateInfo("Некорректно введён месяц окончания!", "red", panel1);
                    }
                }
                else
                {
                    CreateInfo("Некорректно введён месяц или день окончания!", "red", panel1);
                }
            }
            else
            {
                CreateInfo("Максимально возможный год это 2099!", "red", panel1);
            }
        }
Exemplo n.º 6
0
        private void DeleteZadachaa(object sender, EventArgs e)
        {
            // Проверка на существование диагностических задач в программе
            string checkZadacha = new SQL_Query().GetInfoFromBD("select zapros from zadacha");

            if (checkZadacha != "0")
            {
                switch (Delete)
                {
                case 0:

                    try
                    {
                        //Выбор почты главного администратора
                        string MainAdminMail = new Shifr().DeShifrovka(new SQL_Query().GetInfoFromBD("select User_Mail from users where id_user = 1"), "Mail");

                        // Генерация ключа для удаления задачи
                        Key = GetKey();

                        // Отправка пароля по почте
                        MailMessage mail   = new MailMessage("*****@*****.**", MainAdminMail, "Удаление диагностической задачи в программе Psico", "В программе была зарегистрированна попытка удаления задачи пользователем под номером: " + Program.user + ", ключ для удаления: " + Key);
                        SmtpClient  client = new SmtpClient("smtp.yandex.ru");
                        client.Port        = 587;
                        client.Credentials = new NetworkCredential("*****@*****.**", "DogCatPigMonkeyLionTiger");
                        client.EnableSsl   = true;
                        client.Send(mail);

                        // Вывод сообщения
                        CreateInfo("На почту главного администратора выслан ключ для удаления задачи, вам необходимо его указать и ещё раз нажать на кнопку удаления", "lime", panel1);

                        // Обновление формы
                        comboBox1.Enabled = false;
                        textBox1.Visible  = true;
                        Delete            = 1;
                    }
                    catch
                    {
                        // Вывод сообщения
                        CreateInfo("Ошибка отправки ключа, обратитесь к главному администратору!", "red", panel1);
                    }

                    break;

                case 1:
                    // Проверка на ввод данных
                    if (textBox1.Text != "")
                    {
                        // Проверка количества попыток ввода кода подтрвеждения
                        if (kolvoPopitok < 5)
                        {
                            // Проверка на корректность указанного кода подтверждения
                            if (textBox1.Text == Key)
                            {
                                // Вывод сообщения
                                DialogResult result = MessageBox.Show("Если вы удалите задачу, её не возможно будет вернуть, также задача удалится и у остальных пользователях!", "Внимание!",
                                                                      MessageBoxButtons.YesNo, MessageBoxIcon.Information);

                                // Если была нажата кнопка "Ок"
                                if (result == DialogResult.Yes)
                                {
                                    // Запись в переменную выбранной диагностической задачи
                                    int SelectedNumb = Convert.ToInt32(comboBox1.SelectedValue);

                                    // Удаление задачи
                                    new SQL_Query().DeleteInfoFromBD("delete from resh where zadacha_id = " + SelectedNumb + "");
                                    new SQL_Query().DeleteInfoFromBD("delete from Fenom1 where zadacha_id = " + SelectedNumb + "");
                                    new SQL_Query().DeleteInfoFromBD("delete from CBFormFill where zadacha_id = " + SelectedNumb + "");
                                    new SQL_Query().DeleteInfoFromBD("delete from dpo where zadacha_id = " + SelectedNumb + "");
                                    new SQL_Query().DeleteInfoFromBD("delete from vernotv where zadacha_id = " + SelectedNumb + "");
                                    new SQL_Query().DeleteInfoFromBD("delete from Zadacha where id_zadacha = " + SelectedNumb + "");

                                    // Обновление списка задач
                                    new SQL_Query().GetInfoForCombobox("select id_zadacha as \"ido\" from zadacha", comboBox1);

                                    // Вывод сообщения
                                    CreateInfo("Задача успешно удалена!", "lime", panel1);

                                    // Обновление формы
                                    textBox1.Visible  = false;
                                    textBox1.Text     = "";
                                    comboBox1.Enabled = true;
                                    Delete            = 0;
                                    kolvoPopitok      = 0;
                                }
                                else
                                {
                                    // Открытие главной формы администратора
                                    new administrator().Show();
                                    Close();
                                }
                            }
                            else
                            {
                                // Вывод сообщения
                                CreateInfo("Указанный ключ для удаления задачи неверен!", "red", panel1);

                                // Прибавление количества попыток ввода кода подтверждения
                                kolvoPopitok++;
                            }
                        }
                        else
                        {
                            // Обновление формы
                            textBox1.Visible  = false;
                            textBox1.Text     = "";
                            comboBox1.Enabled = true;
                            Delete            = 0;
                            kolvoPopitok      = 0;

                            // Вывод сообщения
                            CreateInfo("Вы превысили лимит попыток ввода ключа для удаления задачи, вам необходимо отправить новый ключ главному администратору!", "red", panel1);
                        }
                    }
                    else
                    {
                        // Вывод сообщения
                        CreateInfo("Необходимо ввести ключ для удаления задачи!", "red", panel1);
                    }
                    break;
                }
            }
            else
            {
                CreateInfo("В программе отсутствуют диагностические задачи!", "red", panel1);
            }
        }
Exemplo n.º 7
0
        private void ClientAutorization(object sender, EventArgs e)
        {
            // Проверка на подключение к БД
            if (CheckConnection == 0)
            {
                // Обнуление переменной отвечающей за номер пользователя
                Program.UserRole = 0;

                try
                {
                    // Подключение к БД
                    con.Open();

                    // Проверка на заполнение данных
                    if (textBox1.Text != "" && textBox2.Text != "")
                    {
                        // Проверка на существование пользователя с указанными данными
                        Program.user = Convert.ToInt32(new SQL_Query().GetInfoFromBD("select id_user from users where User_Login = '******' and User_Password = '******'"));

                        // Если пользователь существует
                        if (Program.user != 0)
                        {
                            // Проверка на статус пользователя
                            bool UserStatus = Convert.ToBoolean(new SQL_Query().GetInfoFromBD("select UserStatus from users where id_user = "******""));

                            // Если пользователь не в сети
                            if (UserStatus == false)
                            {
                                // Проверка даты окончания лицензии
                                CheckUserEndData();

                                // Если Дата окончания лицензии не сегодня
                                if (CheckData == 0)
                                {
                                    // Выбор статуса пользователя
                                    string UserRole = new SQL_Query().GetInfoFromBD("select Naim as 'Role' from Role where users_id = " + Program.user + "");

                                    // Изменение статуса пользователя на "В сети"
                                    new SQL_Query().UpdateOneCell("UPDATE users SET UserStatus=1 WHERE id_user = "******"");

                                    // В зависимости от роли пользователя выполнить
                                    switch (UserRole)
                                    {
                                    case "Admin":
                                        // Обнуление статуса у главного администратора
                                        UpdateMainAdminStatus();

                                        // Удаление динамической созданной Panel
                                        new Autorization().CloseInfo();

                                        //Присвоение переменной роли пользователя
                                        Program.UserRole = 1;

                                        //Открытие формы администратора
                                        new administrator().Show();

                                        // Скрытие этой формы
                                        Hide();
                                        break;

                                    case "Teacher":
                                        // Удаление динамической созданной Panel
                                        new Autorization().CloseInfo();

                                        //Присвоение переменной роли пользователя
                                        Program.UserRole = 2;

                                        // Открытие формы преподавателя
                                        new TeacherStudents().Show();

                                        // Скрытие этой формы
                                        Hide();
                                        break;

                                    case "Student":
                                        // Удаление динамической созданной Panel
                                        new Autorization().CloseInfo();

                                        //Присвоение переменной роли пользователя
                                        Program.UserRole = 3;

                                        // Открытие формы студента
                                        new Anketa().Show();

                                        // Скрытие этой формы
                                        Hide();
                                        break;

                                    default:
                                        CreateInfo("Роль пользователя не зарегистрированна в программе", "red", panel1);
                                        break;
                                    }
                                }
                                else
                                {
                                    CreateInfo("Внимание! Ваше время работы с программой окончено, для того чтобы продлить время обратитесь к администратору.", "red", panel1);
                                }
                            }
                            else
                            {
                                CreateInfo("Пользователь с указанными данными уже в сети! Обратитесь к администратору или преподавателю.", "red", panel1);
                            }
                        }
                        else
                        {
                            CreateInfo("Пользователя с такими данными не существует!", "red", panel1);
                        }
                    }
                    else
                    {
                        CreateInfo("Заполнены не все поля для авторизации!", "red", panel1);
                    }
                    // Отключение от БД
                    con.Close();
                }
                catch
                {
                    CreateInfo("Отсутствует подключение к БД! Обратитесь к администратору.", "red", panel1);

                    // Отключение от БД
                    con.Close();
                }
            }
            else
            {
                CreateInfo("Ошибка подключения к серверу, обратитесь к администратору!", "red", panel1);
            }
        }
Exemplo n.º 8
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();
        }