コード例 #1
0
ファイル: Pupil.cs プロジェクト: kozubov/TASTER_App
        public Pupil(User user)
        {
            this.user = user;

            //заполняем название теста
            IdUser = user.Id;
            InitializeComponent();
            label1_Name.Text = $"{user.LastName} {user.FirstName} {user.MiddleName}";
            //наследуемый метод
            base.Top_Button(bunifuImageButton1_Min, bunifuImageButton1_Max, bunifuImageButton2_Norm);
            this.panel14_Opoves.Visible = false;
            this.label16_Log_Opov.Text  = user.Login;
            //выводит на несколько секунд сообщение
            timer1.Tick += Timer1_Tick;
            timer1.Start();
            this.button1_Close.Click       += Button1_Close_Click;
            bunifuImageButton1_Close.Click += Button1_Close_Click;
            this.button1_Statistika.Click  += Button1_Statistika_Click;
            //добавляем названия предметов из базы
            using (Tests_DBContainer db = new Tests_DBContainer())
            {
                var category = db.Category.ToList();
                foreach (var item in category)
                {
                    comboBox1_Predmet.Items.Add(item.Title.ToString());
                }
            }
            //изменения предмета
            comboBox1_Predmet.TextChanged += ComboBox1_Predmet_TextChanged;
            comboBox1_Predmet.Click       += ComboBox1_Predmet_Click;
            //кнопка запуска теста
            button1_Start.Click += Button1_Start_Click;
            //выбор и изменения значений в listView
            listView1_Name_Test.SelectedIndexChanged += ListView1_Name_Test_SelectedIndexChanged;
        }
コード例 #2
0
ファイル: Result_For_Pupil.cs プロジェクト: Oleg252627/Tests_
        public void Combobox_Selected_Test()
        {
            var categori = Lcategor.Find(z => z.Title == this.comboBox_SelectCategory.SelectedItem.ToString()); //находим по выбраному из комбобокса селект

            this.comboBox_Select_Test.Items.Clear();                                                            //всегда очишаем комбобокс тестов

            using (Tests_DBContainer db = new Tests_DBContainer())
            {
                var test = db.Test.Where(z => z.CategoryId == categori.Id && z.IsActual == 1).ToList();//люмбда выражение для нахождения id лист Test
                Ltest = test;
                foreach (Test VARIABLE in test)
                {
                    this.comboBox_Select_Test.Items.Add(VARIABLE.Title);//заполняем комбобокс тестов
                }

                if (test.Count != 0)
                {
                    this.comboBox_Select_Test.SelectedIndex = 0;//ставим первый айтем как выбранный
                }
                else
                {
                    this.comboBox_Select_Test.Items.Add("");
                    this.comboBox_Select_Test.SelectedIndex = 0;
                }
            }
        }
コード例 #3
0
ファイル: Pupil.cs プロジェクト: kozubov/TASTER_App
 private void Button1_Start_Click(object sender, EventArgs e)
 {
     using (Tests_DBContainer db = new Tests_DBContainer())
     {
         //выборка вопросов из базы
         var test = db.Test.Join(
             db.TestQuestion,
             t => t.Id,
             tq => tq.TestId,
             (t, tq) => new
         {
             testTitle = t.Title
         }).Where(t => t.testTitle == nameTest).ToList();
         //Проверка на наличие вопросов в данном тесте
         if (test.Count > 0)
         {
             //переход на страницу прохождения теста
             Pupil_Test form3 = new Pupil_Test(IdUser, nameTest);
             form3.ShowDialog();
         }
         else
         {
             //вывод ошибки
             MessageBox.Show($"Тест {nameTest} не содержит вопросов!", "Сообщение", MessageBoxButtons.OK, MessageBoxIcon.Information);
         }
         button1_Start.Enabled = false;
         //убираем все выбранные элементы listView
         foreach (var i in listView1_Name_Test.SelectedIndices)
         {
             listView1_Name_Test.Items[Convert.ToInt32(i)].Selected = false;
         }
     }
 }
コード例 #4
0
        /// <summary>
        /// Обработка нажатия кнопи"Отмена"
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void Btn_cancel_Click(object sender, EventArgs e)
        {
            //Вывод сообщения для пользователя
            DialogResult res = MessageBox.Show("Вы действительно хотите отменить создание теста?", this.Text, MessageBoxButtons.YesNo, MessageBoxIcon.Question);

            //Если пользователь подвердил отмену создания теста
            if (res == DialogResult.Yes)
            {
                using (Tests_DBContainer tests = new Tests_DBContainer())
                {
                    using (var transaction = tests.Database.BeginTransaction())
                    {
                        try
                        {
                            Test test = tests.Test.FirstOrDefault(t => t.Id == this.testId);
                            if (test != null)
                            {
                                tests.Test.Remove(test);             //Удаляем тест
                                tests.SaveChanges();                 //Сохраняем вопросы
                                transaction.Commit();                //подтверждаем транзакцию
                                this.DialogResult = DialogResult.OK; //закрываем окно
                            }
                        }
                        catch (Exception ex)
                        {
                            transaction.Rollback();                                                             //отменяем все изменения в БД
                            MessageBox.Show(ex.Message, this.Text, MessageBoxButtons.OK, MessageBoxIcon.Error); //выводим сообщение об ошибке
                        }
                    }
                }
            }
        }
コード例 #5
0
        public void renderTestList()
        {
            using (Tests_DBContainer tests = new Tests_DBContainer())
            {
                var ds = tests.Test
                         .Join(tests.TestCreator, t => t.Id, tc => tc.TestId, (t, tc) => new { t, tc })
                         .Where(ttc => ttc.t.Id == ttc.tc.TestId && ttc.tc.UserId == this.user.Id && ttc.t.CategoryId == currentCategory)
                         .Select(ttc => ttc.t)
                         .ToList();

                listBox_SelectTestToEdit.DataSource    = ds;
                listBox_SelectTestToEdit.DisplayMember = "Title";
                listBox_SelectTestToEdit.ValueMember   = "Id";

                if (listBox_SelectTestToEdit.Items.Count > 0)
                {
                    button_EditTest.Enabled       = true;
                    button_TurnOn_OffTest.Enabled = true;
                    button_Delete_Test.Enabled    = true;
                }
                else
                {
                    button_EditTest.Enabled       = false;
                    button_TurnOn_OffTest.Enabled = false;
                    button_Delete_Test.Enabled    = false;
                }
            }
        }
コード例 #6
0
ファイル: Pupil.cs プロジェクト: kozubov/TASTER_App
        private void ComboBox1_Predmet_TextChanged(object sender, EventArgs e)
        {
            //отчистка listView
            listView1_Name_Test.Items.Clear();
            //убираем все выбранные элементы listView
            foreach (var i in listView1_Name_Test.SelectedIndices)
            {
                listView1_Name_Test.Items[Convert.ToInt32(i)].Selected = false;
            }
            var namePredmet = comboBox1_Predmet.SelectedItem.ToString();

            using (Tests_DBContainer db = new Tests_DBContainer())
            {
                //выор тестов из базы
                var tests = db.Test.Join(
                    db.Category,
                    t => t.CategoryId,
                    c => c.Id,
                    (t, c) => new
                {
                    TitleTest     = t.Title,
                    TitleCategory = c.Title
                }).Where(n => n.TitleCategory.ToString() == namePredmet).ToList();
                //запись тестов по заданной категории и запись в listView
                foreach (var item in tests)
                {
                    ListViewItem list = new ListViewItem(item.TitleTest.ToString());
                    listView1_Name_Test.Items.Add(list);
                }
            }
        }
コード例 #7
0
        public void Show_user()
        {
            this.listBox_ShowStatistic.Items.Clear();                                                 //очистка лист бокса
            var test = Ltest.Find(z => z.Title == this.comboBox_Select_Test.SelectedItem.ToString()); //находим выбранный тест

            using (Tests_DBContainer db = new Tests_DBContainer())
            {
                var userTest = db.UserTest
                               .Where(z => z.TestId == test.Id && z.UserId == user.Id)
                               .OrderByDescending(item => item.StartDate)
                               .ToList();//по айдишнику теста находим пользователей которые его проходили

                if (userTest.Count != 0)
                {
                    this.listBox_ShowStatistic.Items.Add(
                        $"[  {user.LastName.ToUpper()} { user.FirstName.ToUpper()} {user.MiddleName.ToUpper()}  ]");
                    foreach (var VARIABLE in userTest)
                    {
                        //для расчета времени прохождения теста
                        TimeSpan span = (VARIABLE.EndDate - VARIABLE.StartDate);

                        //выводим в лист бокс информацию

                        this.listBox_ShowStatistic.Items.Add(
                            $"Дата прохождения: {VARIABLE.StartDate.ToString("d")}     Результат: {VARIABLE.Result}      Время прохождения: {FormatedTime(span)}");
                    }
                }
            }
        }
コード例 #8
0
ファイル: Pupil_Test.cs プロジェクト: kozubov/TASTER_App
 private void ListBox_SelectQuestion_SelectedIndexChanged(object sender, EventArgs e)
 {
     //проверка на выбор отета RadioButton и переход к следующему вопросу
     //запись выбранного ответа
     RecordSelectedAnswer();
     //очистка panel_ShowAnswer для добавления новых RadioButton
     panel_ShowAnswer.Controls.Clear();
     //проверка на выбранный элемент списка
     if (listBox_SelectQuestion.SelectedIndex != -1)
     {
         //названия выбранного элемента списка
         var text = listBox_SelectQuestion.SelectedItem.ToString();
         using (Tests_DBContainer db = new Tests_DBContainer())
         {
             //получение из базы ответов на выбранный вопрос
             var answer = db.TestQuestion.Join(
                 db.TestQuestionAnswer,
                 tq => tq.Id,
                 tqa => tqa.TestQuestionId,
                 (tq, tqa) => new
             {
                 id           = tq.Id,
                 idAns        = tqa.Id,
                 textQuestion = tq.Question,
                 tqa.Answer
             }).Where(t => t.textQuestion == text).ToList();
             //переменная для определения отступа RadioButton по Y
             int num = 0;
             for (int i = 0; i < answer.Count; i++)
             {
                 //запись во временную переменую id вопроса
                 tempidQues = answer[i].id;
                 //создание RadioButton
                 RadioButton RB = new RadioButton
                 {
                     Margin   = new Padding(10, 5, 5, 5),
                     Text     = answer[i].Answer.ToString(),
                     Location = new Point(10, num += 30),
                     AutoSize = true,
                     Tag      = i.ToString()
                 };
                 //проверка на уже отмеченный RadioButton
                 if (ListAnswer.FirstOrDefault(ee => ee.Id == tempidQues).IdAnswer == answer[i].idAns)
                 {
                     RB.Checked = true;
                 }
                 //добавляем к каждому RadioButton событие на изменения
                 RB.CheckedChanged += RB_CheckedChanged;
                 //добавляем RadioButton в panel_ShowAnswer
                 panel_ShowAnswer.Controls.Add(RB);
             }
         }
     }
     else
     {
         //если ни чего не выбранно то отчистить panel_ShowAnswer от RadioButton
         panel_ShowAnswer.Controls.Clear();
     }
 }
コード例 #9
0
 private void renderCategoryList()
 {
     using (Tests_DBContainer tests = new Tests_DBContainer())
     {
         comboBox_SelectCategory.DataSource    = tests.Category.ToList();
         comboBox_SelectCategory.ValueMember   = "Id";
         comboBox_SelectCategory.DisplayMember = "Title";
     }
 }
コード例 #10
0
        private void Button1_Vkhod_Click(object sender, EventArgs e)
        {
            if (textBox1_Login.Text == "" || textBox1_Password.Text == "")
            {
                label15_Vhod_Null.Visible = true;
                return;
            }

            try //Отлавливание ошибок при подключении БД
            {
                using (Tests_DBContainer tests = new Tests_DBContainer())
                {
                    string pass = textBox1_Password.Text.GetHashCode().ToString(); //получение хеш кода введенного пароля

                    User user = tests.User.FirstOrDefault(z =>
                                                          z.Login == textBox1_Login.Text && z.Password == pass);
                    if (user == null)
                    {
                        this.label6_Error.Visible = true;
                        return;
                    }

                    if (user.Role.Title == "Студент")
                    {
                        Pupil pupil = new Pupil(user);
                        textBox1_Login.Text    = null;
                        textBox1_Password.Text = null;
                        this.ShowInTaskbar     = false;
                        Opacity = 0;
                        if (pupil.ShowDialog() == DialogResult.OK)
                        {
                            Opacity            = 1;
                            this.ShowInTaskbar = true;
                        }
                    }
                    else if (user.Role.Title == "Преподаватель")
                    {
                        Teacher teacher = new Teacher(user);
                        textBox1_Login.Text    = null;
                        textBox1_Password.Text = null;
                        this.ShowInTaskbar     = false;
                        Opacity = 0;
                        if (teacher.ShowDialog() == DialogResult.OK)
                        {
                            Opacity            = 1;
                            this.ShowInTaskbar = true;
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show($"Возникла не предвиденная ошибка с подключением к базе даных!\n Проверте подключение!{ex.Message}",
                                "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }
コード例 #11
0
 public void renderQuestionList()
 {
     using (Tests_DBContainer tests = new Tests_DBContainer())
     {
         var ds = tests.TestQuestion.Where(t => t.TestId == testId).ToList();
         listBox_SelectQuestionToEdit.DataSource    = ds;
         listBox_SelectQuestionToEdit.DisplayMember = "Question";
         listBox_SelectQuestionToEdit.ValueMember   = "Id";
     }
 }
コード例 #12
0
ファイル: Add_Test2.cs プロジェクト: Oleg252627/Tests_
        private void renderListAnswers()
        {
            textBox_EnterdQuestions.Text = "";
            int id = Convert.ToInt32(comboBox_SelectQuestion.SelectedValue);

            using (Tests_DBContainer tests = new Tests_DBContainer()) {
                foreach (TestQuestionAnswer tqa in tests.TestQuestionAnswer.Where(t => t.TestQuestionId == id))
                {
                    textBox_EnterdQuestions.Text += tqa.Answer + Environment.NewLine;
                }
            }
        }
コード例 #13
0
        private void button_Delete_Question_Click(object sender, EventArgs e)
        {
            using (Tests_DBContainer tests = new Tests_DBContainer())
            {
                var row = tests.TestQuestion.FirstOrDefault(t => t.Id == currentQuestion);
                if (row != null)
                {
                    tests.TestQuestion.Remove(row);
                    tests.SaveChanges();
                }
            }

            this.renderQuestionList();
        }
コード例 #14
0
        public void renderTestList()
        {
            using (Tests_DBContainer tests = new Tests_DBContainer())
            {
                var ds = tests.Test
                         .Join(tests.TestCreator, t => t.Id, tc => tc.TestId, (t, tc) => new { t, tc })
                         .Where(ttc => ttc.t.Id == ttc.tc.TestId && ttc.tc.UserId == this.user.Id && ttc.t.CategoryId == currentCategory)
                         .Select(ttc => ttc.t)
                         .ToList();

                listBox_SelectTestToEdit.DataSource    = ds;
                listBox_SelectTestToEdit.DisplayMember = "Title";
                listBox_SelectTestToEdit.ValueMember   = "Id";
            }
        }
コード例 #15
0
        private void renderListQuestions(int ind = 0)
        {
            using (Tests_DBContainer tests = new Tests_DBContainer())
            {
                comboBox_SelectQuestion.DataSource    = tests.TestQuestion.Where(t => t.TestId == this.testId).ToList();
                comboBox_SelectQuestion.ValueMember   = "Id";
                comboBox_SelectQuestion.DisplayMember = "Question";

                if (comboBox_SelectQuestion.Items.Count > 0)
                {
                    comboBox_SelectQuestion.SelectedIndex = ind;
                    renderListAnswers();
                }
            }
        }
コード例 #16
0
        private void button_TurnOn_OffQuestion_Click(object sender, EventArgs e)
        {
            using (Tests_DBContainer tests = new Tests_DBContainer())
            {
                var row = tests.TestQuestion.FirstOrDefault(t => t.Id == currentQuestion);
                if (row != null)
                {
                    byte reverse = questionIsActual != (byte)0 ? (byte)0 : (byte)1;
                    row.IsActual = reverse;
                    tests.SaveChanges();
                }
            }

            this.renderQuestionList();
        }
コード例 #17
0
ファイル: Pupil_Test.cs プロジェクト: kozubov/TASTER_App
 public Pupil_Test(int idUser, string nameTest)
 {
     InitializeComponent();
     //наследуемый метод
     bunifuImageButton1_Min.Click   += BunifuImageButton1_Min_Click;
     bunifuImageButton1_Close.Click += BunifuImageButton1_Close_Click;
     FormClosing += Pupil_Test_FormClosing;
     //изменяем название теста
     WindowState      = FormWindowState.Maximized;
     label1_Name.Text = nameTest;
     using (Tests_DBContainer db = new Tests_DBContainer())
     {
         //определения пользователя
         var User = db.User.FirstOrDefault(u => u.Id == idUser);
         //выборка вопросов из базы
         var test = db.Test.Join(
             db.TestQuestion,
             t => t.Id,
             tq => tq.TestId,
             (t, tq) => new
         {
             id           = tq.Id,
             idTest       = t.Id,
             testTitle    = t.Title,
             testQuestion = tq.Question
         }).Where(t => t.testTitle == nameTest).ToList();
         //заполняем объект userTest начальными данными
         userTest = new UserTest
         {
             UserId    = idUser,
             StartDate = DateTime.Now,
         };
         countQuestion = test.Count;
         foreach (var item in test)
         {
             //добавления вопросов в listBox
             listBox_SelectQuestion.Items.Add(item.testQuestion);
             //добавления id вопросов в массив ответов
             Answer newAnswer = new Answer();
             newAnswer.Id = item.id;
             ListAnswer.Add(newAnswer);
             userTest.TestId = item.idTest;
         }
     }
     listBox_SelectQuestion.SelectedIndexChanged += ListBox_SelectQuestion_SelectedIndexChanged;
     button_CancelTest.Click += Button_CancelTest_Click;
     button1_EndTest.Click   += Button1_EndTest_Click;
 }
コード例 #18
0
        private void button1_Categiri_Click(object sender, EventArgs e)
        {
            if (textBox_AddNewCategory.Text != "")
            {
                using (Tests_DBContainer tests = new Tests_DBContainer())
                {
                    Category category = new Category();
                    category.Title = textBox_AddNewCategory.Text;
                    tests.Category.Add(category);
                    tests.SaveChanges();


                    this.renderCategoryList();
                }
            }
        }
コード例 #19
0
ファイル: Pupil_Test.cs プロジェクト: kozubov/TASTER_App
        private void RB_CheckedChanged(object sender, EventArgs e)
        {
            //изменения в RadioButton
            RadioButton r = sender as RadioButton;

            //запись значения RadioButton во временную переменую
            using (Tests_DBContainer db = new Tests_DBContainer())
            {
                var ansv = db.TestQuestionAnswer.FirstOrDefault(a => a.Answer == r.Text);
                tempAnswer   = ansv.Id;
                tempIsAnswer = ansv.IsAnswer;
            }
            tempDate = DateTime.Now;
            //изменяем значение флага
            flag = false;
        }
コード例 #20
0
        private bool saveAnswers(bool checkAnswersCount = false)
        {
            int isAnswerCnt = 0;

            using (Tests_DBContainer tests = new Tests_DBContainer())
            {
                foreach (DataGridViewRow row in dataGridView1.Rows)
                {
                    if (row.Cells["Answer"].Value.ToString() == "")
                    {
                        MessageBox.Show("Ответ не может быть пустым", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        return(false);
                    }

                    if (Convert.ToByte(row.Cells["IsAnswer"].Value) == 1)
                    {
                        isAnswerCnt++;
                    }

                    if (isAnswerCnt > 1)
                    {
                        MessageBox.Show("Нельзя указывать больше одного правильного ответа", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        return(false);
                    }

                    int aId;
                    int.TryParse(row.Cells["Id"].Value.ToString(), out aId);

                    var answer = tests.TestQuestionAnswer.FirstOrDefault(t => t.Id == aId);

                    if (answer != null)
                    {
                        answer.Answer   = row.Cells["Answer"].Value.ToString();
                        answer.IsAnswer = Convert.ToByte(row.Cells["IsAnswer"].Value);
                        tests.SaveChanges();
                    }
                }
            }

            if (checkAnswersCount && isAnswerCnt == 0)
            {
                MessageBox.Show("Укажите один правильный ответ", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return(false);
            }

            return(true);
        }
コード例 #21
0
        public void ComboBox_SelectCategory_Show()
        {
            using (Tests_DBContainer db = new Tests_DBContainer())
            {
                Lcategor = db.Category.ToList();//заполняем лист категории для долнейшего использования
            }

            foreach (Category VARIABLE in Lcategor)
            {
                this.comboBox_SelectCategory.Items.Add(VARIABLE.Title);//заполняем комбобокс категориями
            }

            if (Lcategor.Count != 0)
            {
                this.comboBox_SelectCategory.SelectedIndex = 0;//ставим первый айтем по умолчанию как выбраный
            }
        }
コード例 #22
0
        private void button__Add_Click(object sender, EventArgs e)
        {
            if (!this.saveAnswers(false))
            {
                return;
            }

            using (Tests_DBContainer tests = new Tests_DBContainer())
            {
                var answer = new TestQuestionAnswer()
                {
                    Answer = "", TestQuestionId = questionId, IsAnswer = 0
                };
                tests.TestQuestionAnswer.Add(answer);
                tests.SaveChanges();
                renderAnswerList();
            }
        }
コード例 #23
0
        private void button1_Categiri_Click(object sender, EventArgs e)
        {
            if (textBox_AddNewCategory.Text != "")
            {
                using (Tests_DBContainer tests = new Tests_DBContainer())
                {
                    Category category = new Category();
                    category.Title = textBox_AddNewCategory.Text;
                    tests.Category.Add(category);
                    tests.SaveChanges();

                    this.bunifuTransition2.HideSync(this.panel_AddNewCategory);

                    this.renderCategoryList();
                    comboBox_SelectCategory.SelectedIndex = comboBox_SelectCategory.Items.Count - 1;
                }
            }
        }
コード例 #24
0
        public void Show_user()
        {
            this.listBox_Test_Results_For_Teacher.Items.Clear();                                      //очистка лист бокса
            var test = Ltest.Find(z => z.Title == this.comboBox_Select_Test.SelectedItem.ToString()); //находим выбранный тест

            if (test != null)
            {
                using (Tests_DBContainer db = new Tests_DBContainer())
                {
                    //по айдишнику теста находим пользователей которые его проходили: и группируем по пользователю
                    var userTest = db.UserTest
                                   .Where(z => z.TestId == test.Id)
                                   .OrderBy(item => item.User.LastName)
                                   .ThenBy(item => item.User.FirstName)
                                   .ThenBy(item => item.User.MiddleName)
                                   .ThenByDescending(item => item.StartDate)
                                   .GroupBy(item => item.User.LastName)
                                   .ToList();

                    //userTest = userTest.GroupBy(item => item.User.LastName);
                    foreach (var VARIABLE in userTest)
                    {
                        bool needUser = true;

                        foreach (UserTest item in VARIABLE)
                        {
                            //для расчета времени прохождения теста
                            TimeSpan span = (item.EndDate - item.StartDate);
                            if (needUser)
                            {
                                listBox_Test_Results_For_Teacher.Items.Add($"{item.User.FirstName} {item.User.LastName} {item.User.MiddleName}");
                                needUser = false;
                            }

                            //
                            //выводим в лист бокс информацию
                            //
                            listBox_Test_Results_For_Teacher.Items.Add(
                                $"Дата прохождения теста: {item.StartDate.ToString("d")}     Результат: {item.Result}     Потрачено времени: {FormatedTime(span)}");
                        }
                    }
                }
            }
        }
コード例 #25
0
        private void button_AddNewQuestion_Click(object sender, EventArgs e)
        {
            if (textBox_AddTestTitle.Text == "")
            {
                label_ErrorAddTest.Text = "Введите название";
            }
            else if (textBox_AddTestTitle.Text.Length > 255)
            {
                label_ErrorAddTest.Text = "Название не должно превышать 255 символов";
            }
            else
            {
                using (Tests_DBContainer tests = new Tests_DBContainer())
                {
                    Test test = new Test();
                    test.Title    = textBox_AddTestTitle.Text;
                    test.IsActual = 0;
                    int idCat = Convert.ToInt32(comboBox_SelectCategory.SelectedValue.ToString());
                    test.Category = tests.Category.FirstOrDefault(cat => cat.Id == idCat);

                    tests.Test.Add(test);

                    TestCreator testcreator = new TestCreator();
                    testcreator.TestId = test.Id;
                    testcreator.UserId = user.Id;

                    tests.TestCreator.Add(testcreator);

                    tests.SaveChanges();

                    textBox_AddTestTitle.Text = "";

                    Add_Test2 add_test2 = new Add_Test2(test.Id);
                    Opacity            = 0;
                    this.ShowInTaskbar = false;
                    if (add_test2.ShowDialog() == DialogResult.OK)
                    {
                        Close();
                    }
                }
            }
        }
コード例 #26
0
        private void button_DeleteAnswer_Click(object sender, EventArgs e)
        {
            int rowindex = dataGridView1.CurrentRow.Index;
            var row      = dataGridView1.Rows[rowindex];

            int aId;

            int.TryParse(row.Cells["Id"].Value.ToString(), out aId);

            using (Tests_DBContainer tests = new Tests_DBContainer())
            {
                var rowDb = tests.TestQuestionAnswer.FirstOrDefault(t => t.Id == aId);
                if (rowDb != null)
                {
                    tests.TestQuestionAnswer.Remove(rowDb);
                    tests.SaveChanges();
                    renderAnswerList();
                }
            }
        }
コード例 #27
0
        private void renderAnswerList()
        {
            using (Tests_DBContainer tests = new Tests_DBContainer())
            {
                dataGridView1.Rows.Clear();
                dataGridView1.Refresh();

                var answersList = tests.TestQuestionAnswer.Where(t => t.TestQuestionId == questionId).ToList();
                foreach (var row in answersList)
                {
                    dataGridView1.Rows.Add(
                        new object[] {
                        row.Answer,
                        row.IsAnswer == 1 ? true : false,
                        row.Id
                    }
                        );
                }
            }
        }
コード例 #28
0
        public Select_Question_To_Edit(int testId, Select_Test_To_Edit parent)
        {
            InitializeComponent();

            this.testId = testId;
            this.parent = parent;

            //наследуемый метод
            base.Top_Button(bunifuImageButton1_Min, bunifuImageButton1_Max, bunifuImageButton2_Norm);
            this.button_EditQuestion.Click      += Button_EditQuestion_Click;
            this.bunifuImageButton1_Close.Click += button_CancelEditQuestion_Click;
            using (Tests_DBContainer tests = new Tests_DBContainer())
            {
                var row = tests.Test.FirstOrDefault(t => t.Id == testId);
                if (row != null)
                {
                    textBox_AddEditTestTitle.Text = row.Title;
                    renderQuestionList();
                }
            }
        }
コード例 #29
0
        private void renderListAnswers()
        {
            textBox_EnterdQuestions.Text = "";
            int id = Convert.ToInt32(comboBox_SelectQuestion.SelectedValue);

            using (Tests_DBContainer tests = new Tests_DBContainer()) {
                StringBuilder answer = new StringBuilder();
                foreach (TestQuestionAnswer tqa in tests.TestQuestionAnswer.Where(t => t.TestQuestionId == id))
                {
                    if (tqa.IsAnswer == 1)
                    {
                        answer.AppendLine("+    " + tqa.Answer);
                    }
                    else
                    {
                        answer.AppendLine("     " + tqa.Answer);
                    }
                }
                textBox_EnterdQuestions.Text = answer.ToString();
            }
        }
コード例 #30
0
        private void button_SaveChangeTitleQuestion_Click(object sender, EventArgs e)
        {
            if (textBox_AddEditTestTitle.Text == "")
            {
                MessageBox.Show("Название теста не может быть пустым", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return;
            }

            using (Tests_DBContainer tests = new Tests_DBContainer())
            {
                var row = tests.Test.FirstOrDefault(t => t.Id == testId);
                if (row != null)
                {
                    row.Title = textBox_AddEditTestTitle.Text;
                    tests.SaveChanges();
                    MessageBox.Show("Название было изменено", "Изменения", MessageBoxButtons.OK, MessageBoxIcon.Information);
                }

                this.parent.renderTestList();
            }
        }