예제 #1
0
        private void GetLicenseKey(object sender, EventArgs e)
        {
            try
            {
                //Выбор почты главного администратора
                string MainAdminMail = new Shifr().DeShifrovka(new SQL_Query().GetInfoFromBD("select User_Mail from users where id_user = 1"), "Mail");

                // Отправка пароля по почте
                MailMessage mail   = new MailMessage("*****@*****.**", MainAdminMail, "Ключ активации программы Psico", "Ключ активации программного продукта для преподавателя: " + new Shifr().DeShifrovka(new SQL_Query().GetInfoFromBD("select DefenderKey from defender"), "Kod") + "");
                SmtpClient  client = new SmtpClient("smtp.yandex.ru")
                {
                    Port        = 587,
                    Credentials = new NetworkCredential("*****@*****.**", "DogCatPigMonkeyLionTiger"),
                    EnableSsl   = true
                };
                client.Send(mail);

                // Вывод сообщения
                CreateInfo("Ключ активации программного продукта\r\n для преподавателя был отправлен на\r\n почту главному администратору!", "lime", panel1);
            }
            catch
            {
                // Вывод сообщения
                CreateInfo("Ключ активации программного продукта\r\n для преподавателя не был отправлен,\r\n проверьте подключение к интернету!", "red", panel1);
            }
        }
예제 #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 + "')");
            }
        }
예제 #3
0
        public void ExProtokolSent()
        {
            // Выбор почты главного администратора
            string UserMail = new Shifr().DeShifrovka(new SQL_Query().GetInfoFromBD("select User_Mail as 'mail' from users where id_user = 1"), "Mail");

            // Отправка сообщения с протоколом на почту главному администратору
            try
            {
                MailMessage mail   = new MailMessage("*****@*****.**", UserMail, "Протокол от программы psico.", "");
                SmtpClient  client = new SmtpClient("smtp.yandex.ru");
                mail.Attachments.Add(new Attachment(Program.doc));
                client.Port        = 587;
                client.Credentials = new NetworkCredential("*****@*****.**", "DogCatPigMonkeyLionTiger");
                client.EnableSsl   = true;
                client.Send(mail);
            }catch { }

            // Изменение статуса пользователя на "Не в сети"
            new SQL_Query().UpdateOneCell("UPDATE users SET UserStatus=0 WHERE id_user = "******"");
        }
예제 #4
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);
            }
        }
예제 #5
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();
        }