private void button1_Click(object sender, EventArgs e)
        {
            if (textBox1.Text == String.Empty)
            {
                MessageBox.Show("Необходимо ввести название вопроса");
                return;
            }
            TestAppLibrary.Question q = new TestAppLibrary.Question();
            using (TestAppLibrary.TestAppContext db = new TestAppLibrary.TestAppContext())
            {
                q.Challenge     = textBox1.Text;
                q.AnswersNumber = (int)numericUpDown1.Value;
                q.MultiChoice   = radioButton1.Checked;
                q.Exam          = db.Exams.Where(i => i.Id == id).First();
                db.Questions.Add(q);
                db.SaveChanges();


                FormAddAnswers fa     = new FormAddAnswers(form, tree, textBox1, (int)numericUpDown1.Value, radioButton1.Checked, q.Id);
                DialogResult   result = fa.ShowDialog();
                if (result == DialogResult.Cancel)
                {
                    db.Questions.Remove(q);
                    db.SaveChanges();
                }
            }
            this.Close();
        }
Esempio n. 2
0
 //Если пользователя с данным логином нет в базе - предлагается его создать
 // Если данный логин есть в базе, но под другим паролем, выводится сообщение об ошибке
 private void button1_Click(object sender, EventArgs e)
 {
     using (TestAppLibrary.TestAppContext db = new TestAppLibrary.TestAppContext())
     {
         var users = db.Users.Where(i => i.Name == textBox1.Text && i.Password == textBox2.Text).FirstOrDefault();
         if (users != null)
         {
             form.UserId = users.Id;
         }
         else
         {
             var users2 = db.Users.Where(i => i.Name == textBox1.Text && i.Password != textBox2.Text).FirstOrDefault();
             if (users2 != null)
             {
                 MessageBox.Show("Пароль пользователя введен неверно");
                 return;
             }
             else
             {
                 DialogResult result = MessageBox.Show("Вы хотите создать нового пользователя?", "Создание нового пользователя", MessageBoxButtons.YesNo, MessageBoxIcon.Question);
                 if (result == DialogResult.Yes)
                 {
                     TestAppLibrary.User user = new TestAppLibrary.User {
                         Name = textBox1.Text, Password = textBox2.Text
                     };
                     db.Users.Add(user);
                     db.SaveChanges();
                 }
                 return;
             }
         }
     }
     this.DialogResult = DialogResult.OK;
     this.Close();
 }
        //Обработка двойного клика по дереву. Редактирование названий предметов
        private void treeView1_AfterLabelEdit(object sender, NodeLabelEditEventArgs e)
        {
            if (e.Label != null)
            {
                using (TestAppLibrary.TestAppContext db = new TestAppLibrary.TestAppContext())
                {
                    if (e.Node.Level == 0)
                    {
                        var sub = db.Subjects.Where(i => i.Id == ((TestAppLibrary.Subject)e.Node.Tag).Id).FirstOrDefault();
                        if (sub != null)
                        {
                            if (e.Label != null)
                            {
                                sub.Name = e.Label;
                            }
                        }
                    }
                    else if (e.Node.Level == 1)
                    {
                        var ex = db.Exams.Where(i => i.Id == ((TestAppLibrary.Exam)e.Node.Tag).Id).FirstOrDefault();
                        if (ex != null)
                        {
                            if (e.Label != null)
                            {
                                ex.Name = e.Label;
                            }
                        }
                    }

                    db.SaveChanges();
                }
                e.Node.EndEdit(false);
                TreeViewFill();
            }
        }
Esempio n. 4
0
        private void button1_Click(object sender, EventArgs e)
        {
            foreach (var c in table.Controls)
            {
                if (c.GetType().Name == "TextBox")
                {
                    if (((TextBox)c).Text == String.Empty)
                    {
                        MessageBox.Show("Заполните все поля");
                        return;
                    }
                }
            }

            var radios = table.Controls.OfType <RadioButton>().ToList();
            var checks = table.Controls.OfType <CheckBox>().ToList();
            var texts  = table.Controls.OfType <TextBox>().ToList();

            using (TestAppLibrary.TestAppContext db = new TestAppLibrary.TestAppContext())
            {
                if (multiChoice == true)
                {
                    for (int i = 0; i < texts.Count; i++)
                    {
                        TestAppLibrary.Answer ans = new TestAppLibrary.Answer {
                            Challenge = texts[i].Text, IsRight = checks[i].Checked, Question = db.Questions.Where(k => k.Id == id).First()
                        };
                        db.Answers.Add(ans);
                    }
                }
                else if (multiChoice == false)
                {
                    for (int i = 0; i < texts.Count; i++)
                    {
                        TestAppLibrary.Answer ans = new TestAppLibrary.Answer {
                            Challenge = texts[i].Text, IsRight = radios[i].Checked, Question = db.Questions.Where(k => k.Id == id).First()
                        };
                        db.Answers.Add(ans);
                    }
                }

                db.SaveChanges();

                form.TreeViewFill();
                this.DialogResult = DialogResult.OK;
                this.Close();
            }
        }
 private void button2_Click(object sender, EventArgs e)
 {
     using (TestAppLibrary.TestAppContext db = new TestAppLibrary.TestAppContext())
     {
         var answers = db.Answers.Where(i => i.Question.Id == questionId).ToList();
         var texts   = table.Controls.OfType <TextBox>().ToList();
         var radios  = table.Controls.OfType <RadioButton>().ToList();
         var checks  = table.Controls.OfType <CheckBox>().ToList();
         for (int i = 0; i < answers.Count; i++)
         {
             TestAppLibrary.Answer ans = answers[i];
             ans.Challenge = texts[i].Text;
             ans.Question  = db.Questions.Where(j => j.Id == questionId).FirstOrDefault();
             ans.IsRight   = (radios.Count != 0) ? radios[i].Checked : checks[i].Checked;
         }
         db.SaveChanges();
         this.Close();
     }
 }
Esempio n. 6
0
 private void button1_Click(object sender, EventArgs e)
 {
     using (TestAppLibrary.TestAppContext db = new TestAppLibrary.TestAppContext())
     {
         var exam = db.Exams.Where(i => i.Id == id).First();
         if (numericUpDown1.Value < numericUpDown2.Value)
         {
             MessageBox.Show("Количество вопросов не совпадает с количеством ответов");
             return;
         }
         exam.QuestionNumber = (int)numericUpDown1.Value;
         exam.QuestionToPass = (int)numericUpDown2.Value;
         exam.Name           = textBox2.Text;
         exam.TimeToPass     = dateTimePicker1.Value.Hour * 60 + dateTimePicker1.Value.Minute;
         db.SaveChanges();
         form.TreeViewFill();
         this.Close();
     }
 }
 private void button1_Click(object sender, EventArgs e)
 {
     using (TestAppLibrary.TestAppContext db = new TestAppLibrary.TestAppContext())
     {
         var subject = db.Subjects.Where(i => i.Id == id).First();
         if (textBox1.Text == String.Empty)
         {
             MessageBox.Show("Введите название предмета");
             return;
         }
         var temp = db.Subjects.Where(i => i.Name == textBox1.Text).FirstOrDefault();
         if (temp == null)
         {
             subject.Name = textBox1.Text;
             db.SaveChanges();
             form.TreeViewFill();
             this.Close();
         }
     }
 }
Esempio n. 8
0
 private void btnOk_Click(object sender, EventArgs e)
 {
     using (TestAppLibrary.TestAppContext db = new TestAppLibrary.TestAppContext())
     {
         TestAppLibrary.Exam ex = new TestAppLibrary.Exam();
         ex.Name = textBox1.Text;
         if (numericUpDown1.Value < numericUpDown2.Value)
         {
             MessageBox.Show("Количество вопросов не совпадает с количеством ответов");
             return;
         }
         ex.QuestionNumber = (int)numericUpDown1.Value;
         ex.QuestionToPass = (int)numericUpDown2.Value;
         ex.TimeToPass     = dateTimePicker1.Value.Hour * 60 + dateTimePicker1.Value.Minute;
         ex.Subject        = db.Subjects.Where(i => i.Name == (string)comboBox1.SelectedItem).First();
         db.Exams.Add(ex);
         db.SaveChanges();
         form.TreeViewFill();
         this.Close();
     }
 }
Esempio n. 9
0
 private void btnOk_Click(object sender, EventArgs e)
 {
     using (TestAppLibrary.TestAppContext db = new TestAppLibrary.TestAppContext())
     {
         var temp = db.Subjects.Where(i => i.Name == textBox1.Text).FirstOrDefault();
         if (temp == null)
         {
             TestAppLibrary.Subject sub = new TestAppLibrary.Subject {
                 Name = textBox1.Text
             };
             db.Subjects.Add(sub);
             db.SaveChanges();
             form.TreeViewFill();
             this.Close();
         }
         else
         {
             MessageBox.Show("Такой предмет уже есть");
             return;
         }
     }
 }
 //Удаление узлов
 private void tsBtnDelete_Click(object sender, EventArgs e)
 {
     try
     {
         using (TestAppLibrary.TestAppContext db = new TestAppLibrary.TestAppContext())
         {
             int level = treeView1.SelectedNode.Level;
             if (level == 0)
             {
                 var subject = db.Subjects.Where(i => i.Id == ((TestAppLibrary.Subject)treeView1.SelectedNode.Tag).Id).FirstOrDefault();
                 if (subject != null)
                 {
                     var exams = db.Exams.Where(i => i.Subject.Id == subject.Id).ToList();
                     foreach (var ex in exams)
                     {
                         foreach (var q in db.Questions.Where(i => i.Exam.Id == ex.Id).ToList())
                         {
                             foreach (var ans in db.Answers.Where(i => i.Question.Id == q.Id).ToList())
                             {
                                 foreach (var ua in db.UserAnswers.Where(i => i.Answer.Id == ans.Id).ToList())
                                 {
                                     db.UserAnswers.Remove(ua);
                                 }
                                 db.Answers.Remove(ans);
                             }
                             foreach (var uq in db.UserQuestions.Where(i => i.Question.Id == q.Id).ToList())
                             {
                                 db.UserQuestions.Remove(uq);
                             }
                             db.Questions.Remove(q);
                         }
                         foreach (var ue in db.UserExams.Where(i => i.Exam.Id == ex.Id).ToList())
                         {
                             db.UserExams.Remove(ue);
                         }
                         db.Exams.Remove(ex);
                     }
                     db.Subjects.Remove(subject);
                     db.SaveChanges();
                     TreeViewFill();
                 }
             }
             else if (level == 1)
             {
                 var exam = db.Exams.Where(i => i.Id == ((TestAppLibrary.Exam)treeView1.SelectedNode.Tag).Id).FirstOrDefault();
                 if (exam != null)
                 {
                     foreach (var q in db.Questions.Where(i => i.Exam.Id == exam.Id).ToList())
                     {
                         foreach (var ans in db.Answers.Where(i => i.Question.Id == q.Id).ToList())
                         {
                             foreach (var ua in db.UserAnswers.Where(i => i.Answer.Id == ans.Id).ToList())
                             {
                                 db.UserAnswers.Remove(ua);
                             }
                             db.Answers.Remove(ans);
                         }
                         foreach (var uq in db.UserQuestions.Where(i => i.Question.Id == q.Id).ToList())
                         {
                             db.UserQuestions.Remove(uq);
                         }
                         db.Questions.Remove(q);
                     }
                     foreach (var ue in db.UserExams.Where(i => i.Exam.Id == exam.Id).ToList())
                     {
                         db.UserExams.Remove(ue);
                     }
                     db.Exams.Remove(exam);
                     db.SaveChanges();
                     TreeViewFill();
                 }
             }
             else if (level == 2)
             {
                 var question = db.Questions.Where(i => i.Id == ((TestAppLibrary.Question)treeView1.SelectedNode.Tag).Id).FirstOrDefault();
                 if (question != null)
                 {
                     foreach (var ans in db.Answers.Where(i => i.Question.Id == question.Id).ToList())
                     {
                         foreach (var ua in db.UserAnswers.Where(i => i.Answer.Id == ans.Id).ToList())
                         {
                             db.UserAnswers.Remove(ua);
                         }
                         db.Answers.Remove(ans);
                     }
                     foreach (var que in db.UserQuestions.Where(i => i.Question.Id == question.Id).ToList())
                     {
                         db.UserQuestions.Remove(que);
                     }
                     db.Questions.Remove(question);
                     db.SaveChanges();
                     TreeViewFill();
                 }
             }
         }
     }
     catch (Exception e1)
     {
         MessageBox.Show(e1.Message);
     }
 }
Esempio n. 11
0
        //Обработка нажатия на кнопку "Завершить"
        private void button2_Click(object sender, EventArgs e)
        {
            t.Stop();
            int rAns = 0;

            // Выборка ответов пользователя на последний вопрос
            using (TestAppLibrary.TestAppContext db = new TestAppLibrary.TestAppContext())
            {
                TestAppLibrary.Question que = q[count - 1];
                var answer = db.Answers.Where(i => i.Question.Id == que.Id).ToList();
                if (q[count - 1].MultiChoice == true)
                {
                    var boxes = table.Controls.OfType <CheckBox>();
                    int i     = 0;
                    foreach (var box in boxes)
                    {
                        TestAppLibrary.UserAnswer uans = new TestAppLibrary.UserAnswer();
                        var user = db.Users.Where(l => l.Id == idUser).FirstOrDefault();
                        uans.User = user;
                        TestAppLibrary.Answer ans1 = answer[i++];
                        uans.Answer   = ans1;
                        uans.IsPicked = box.Checked;
                        db.UserAnswers.Add(uans);
                    }
                }
                else
                {
                    var radios = table.Controls.OfType <RadioButton>();
                    int i      = 0;
                    foreach (var radio in radios)
                    {
                        TestAppLibrary.UserAnswer uans = new TestAppLibrary.UserAnswer();
                        var user = db.Users.Where(l => l.Id == idUser).FirstOrDefault();
                        uans.User = user;
                        TestAppLibrary.Answer ans1 = answer[i++];
                        uans.Answer   = ans1;
                        uans.IsPicked = radio.Checked;
                        db.UserAnswers.Add(uans);
                    }
                }
                db.SaveChanges();
                //В случае, если пользователь прервал экзамен до ответа на все вопросы,
                //создаются записи для соблюдения целостности базы
                if (IsAllFinished == false)
                {
                    for (int i = count; i < q.Count; i++)
                    {
                        TestAppLibrary.Question quest = q[i];
                        var answers = db.Answers.Where(j => j.Question.Id == quest.Id).ToList();
                        foreach (var a in answers)
                        {
                            TestAppLibrary.UserAnswer uans = new TestAppLibrary.UserAnswer();
                            var us = db.Users.Where(l => l.Id == idUser).FirstOrDefault();
                            uans.User = us;
                            TestAppLibrary.Answer ans1 = a;
                            uans.Answer   = ans1;
                            uans.IsPicked = false;
                            db.UserAnswers.Add(uans);
                        }
                    }
                    db.SaveChanges();
                }
                //Проверка ответов пользователя
                foreach (var q in db.Questions.Where(i => i.Exam.Id == idExam).ToList())
                {
                    var ans      = db.Answers.Where(i => i.Question.Id == q.Id).ToList();
                    int questAns = 0;
                    foreach (var a in ans)
                    {
                        var ua = db.UserAnswers.Where(i => i.User.Id == idUser && i.Answer.Id == a.Id).FirstOrDefault();
                        if (ua != null)
                        {
                            if (ua.IsPicked == a.IsRight)
                            {
                                questAns += 0;
                            }
                            else
                            {
                                questAns += 1;
                            }
                        }
                    }
                    TestAppLibrary.UserQuestion uq = new TestAppLibrary.UserQuestion();
                    var user = db.Users.Where(l => l.Id == idUser).FirstOrDefault();
                    uq.User     = user;
                    uq.Question = db.Questions.Where(i => i.Id == q.Id).FirstOrDefault();
                    uq.IsRight  = (questAns == 0) ? true : false;
                    if (uq.IsRight == true)
                    {
                        rAns += 1;
                    }
                    db.UserQuestions.Add(uq);
                    db.SaveChanges();
                }

                TestAppLibrary.UserExams ue = db.UserExams.Where(i => i.User.Id == idUser && i.Exam.Id == idExam).FirstOrDefault();
                ue.IsPassed = (ex.QuestionToPass > rAns) ? false : true;
                db.SaveChanges();
                //Вызов формы с финальным результатом теста
                FormExamResult fer = new FormExamResult(this, q.Count, ex.QuestionToPass, rAns);
                fer.ShowDialog();
                this.Close();
            }
        }
Esempio n. 12
0
 //Обработка нажатия на кнопку "Следующий вопрос"
 private void button1_Click(object sender, EventArgs e)
 {
     //В начале происходит выборка предыдущих ответов пользователя. Результаты выбора пользователя заносятся в базу данных
     using (TestAppLibrary.TestAppContext db = new TestAppLibrary.TestAppContext())
     {
         TestAppLibrary.Question que = q[count - 1];
         var answer = db.Answers.Where(i => i.Question.Id == que.Id).ToList();
         if (q[count - 1].MultiChoice == true)
         {
             var boxes = table.Controls.OfType <CheckBox>();
             int i     = 0;
             foreach (var box in boxes)
             {
                 TestAppLibrary.UserAnswer uans = new TestAppLibrary.UserAnswer();
                 var user = db.Users.Where(l => l.Id == idUser).FirstOrDefault();
                 uans.User = user;
                 TestAppLibrary.Answer ans1 = answer[i++];
                 uans.Answer   = ans1;
                 uans.IsPicked = box.Checked;
                 db.UserAnswers.Add(uans);
             }
         }
         else
         {
             var radios = table.Controls.OfType <RadioButton>();
             int i      = 0;
             foreach (var radio in radios)
             {
                 TestAppLibrary.UserAnswer uans = new TestAppLibrary.UserAnswer();
                 var user = db.Users.Where(l => l.Id == idUser).FirstOrDefault();
                 uans.User = user;
                 TestAppLibrary.Answer ans1 = answer[i++];
                 uans.Answer   = ans1;
                 uans.IsPicked = radio.Checked;
                 db.UserAnswers.Add(uans);
             }
         }
         //Выведение на форму следующего вопроса
         TestAppLibrary.Question quest = q[count++];
         textBox1.Text = quest.Challenge;
         Control ctrl;
         textBox1.ReadOnly = true;
         table             = new TableLayoutPanel();
         table.Parent      = splitContainer2.Panel1;
         table.Dock        = DockStyle.Fill;
         table.ColumnCount = 2;
         table.Padding     = new Padding(20, 10, 10, 20);
         table.AutoScroll  = true;
         table.BringToFront();
         table.ColumnStyles.Add(new ColumnStyle(SizeType.Absolute, 20));
         int k   = 0;
         var ans = db.Answers.Where(i => i.Question.Id == quest.Id).ToList();
         for (int j = 0; j < quest.AnswersNumber && j < ans.Count; j++)
         {
             if (quest.MultiChoice == false)
             {
                 ctrl = new RadioButton();
             }
             else
             {
                 ctrl = new CheckBox();
             }
             ctrl.Parent = table;
             TextBox t = new TextBox();
             t.Parent    = table;
             t.Multiline = true;
             t.WordWrap  = true;
             t.Size      = new Size {
                 Width = 250, Height = 50
             };
             t.Text = ans[k++].Challenge;
         }
         //Если вопросов больше нет в коллекции сделать неактивной кнопку продолжения
         if (count == q.Count)
         {
             button1.Enabled = false;
         }
         db.SaveChanges();
     }
 }