Пример #1
0
 public Exam(int id, Questionnaire questionnaire, DateTime starttime, DateTime endtime, int li)
 {
     Examnr = id;
     Questionnaire = questionnaire;
     Starttime = starttime;
     Endtime = endtime;
     LectureInt = li;
 }
Пример #2
0
 public Exam(int id, Questionnaire questionnaire, DateTime starttime, DateTime endtime, Lecture lecture)
 {
     Examnr = id;
     Questionnaire = questionnaire;
     Starttime = starttime;
     Endtime = endtime;
     Lecture = lecture;
 }
Пример #3
0
        // Methode voor het updaten van een questionnaire in de database
        // Het Questionnaire object wordt meegegeven en eventueel een lijst met verwijderde vragen zodat deze verwijderd kunnen worden uit de database
        public void UpdateQuestionnaire(Questionnaire questionnaire, List<Question> deletedQuestions = null, List<Answer> deletedAnswers = null)
        {
            db = new DatabaseDataContext(); // Refresh database cache
            try
            {
                tblQuestionnaire updateQuestionnaire = db.tblQuestionnaires.SingleOrDefault(q => q.id == questionnaire.ID); // Haalt questionnaire op uit DB
                updateQuestionnaire.description = questionnaire.Name; // Wijzigingen toepassen
                updateQuestionnaire.archived = questionnaire.Archived;
                db.SubmitChanges();
                if (deletedQuestions != null) // Als er vragen zijn verwijderd, bevinden deze zich niet meer in het object Questionnaire daarvoor is een aparte lijst meegegeven
                {
                    foreach (MultipleChoiceQuestion delQuestion in deletedQuestions)
                    {
                        DeleteMultipleChoiceQuestion(delQuestion.ID); // Verwijder de desbetreffende vraag
                    }
                }

                if (deletedAnswers != null) // Als er antwoorden zijn verwijderd, bevinden deze zich niet meer in het object Question daarvoor is een aparte lijst meegegeven
                {
                    foreach (Answer delAnswer in deletedAnswers)
                    {
                        DeleteLinkAnswerToQuestion(delAnswer); // Verwijder het desbetreffende antwoord
                    }
                }

                foreach (MultipleChoiceQuestion question in questionnaire.Questions) // Doorloopt alle vragen in de questionnaire
                {
                    tblQuestion dbQuestion = null;
                    if (question.ID == -1) // Als de vraag een nieuwe betreft heeft deze standaard een ID van -1
                    {
                        dbQuestion = AddMultipleChoiceQuestion(question, questionnaire.ID); // De vraag wordt dan aangemaakt in de database
                    }
                    else
                    {
                        dbQuestion = updateQuestionnaire.tblQuestions.SingleOrDefault(q => q.id == question.ID); // Haalt de desbetreffende vraag op uit de DB
                        dbQuestion.description = question.Description; // Wijzigt de vraag in DB
                        db.SubmitChanges();
                        foreach (Answer answer in question.AnswerOptions)
                        {
                            if (answer.ID == -1)
                            {
                                Answer tempAnswer = new Answer(AddAnswer(answer).id)
                                {
                                    Description = answer.Description
                                }; // Voegt antwoord toe in database als deze nog niet bestaat

                                dbQuestion.tblAnsweroptions.Add(LinkAnswerToQuestion(question.ID, tempAnswer)); // Koppelt antwoord aan de vraag in de database
                                if (answer == question.CorrectAnswer)
                                {
                                    dbQuestion.correctanswer = tempAnswer.ID;
                                    db.SubmitChanges();
                                    question.CorrectAnswer = tempAnswer;
                                }
                            }
                            else
                            {
                                if (answer == question.CorrectAnswer)
                        {
                                    dbQuestion.correctanswer = answer.ID;
                                    db.SubmitChanges();
                                }
                            }
                        }
                    }
                    if (dbQuestion != null)
                    {
                        updateQuestionnaire.tblQuestions.Add(dbQuestion);
                    }
                }
            }
            catch (SqlException ex) { MessageBox.Show(ex.Message); }
        }
Пример #4
0
        public List<Exam> GetExamsByQuestionnaire(Questionnaire q)
        {
            try
            {
            List<Exam> exams1 = new List<Exam>();
            List<tblExam> exams = (from tblExam in db.tblExams
                                       where tblExam.tblQuestionnaire.id == q.ID
                                       select tblExam).ToList();//Haal alle exams op waar het ID van de questionnaire overeenkomt met de questionnaireID van de exam.
            foreach (tblExam exam in exams)
            {
                Exam newExam = new Exam(exam.id, q, exam.starttime.Value, exam.endtime.Value, //Maak voor elke exam een examobject aan zodat je deze kan teruggeven.
                GetLecture(exam.lecture));
                exams1.Add(newExam);
            }

            return exams1;//Wanneer er iets fout gaat, laat een messagebox zien met de SQL exception.
            }
            catch (SqlException ex)
            {
                MessageBox.Show(ex.Message);
                return null;
            }
        }
Пример #5
0
        // Deze functie wordt gebruikt om het database object tblQuestionnaire te converteren naar een Questionnaire object die vervolgens gebruikt kan worden in het programma
        public Questionnaire ConvertDbQuestionnaire(tblQuestionnaire dbQuestionnaire)
        {
            Teacher author = new Teacher() // Teacher object aanmaken
            {
                TeacherNr = dbQuestionnaire.tblTeacher.nr,
                FirstName = dbQuestionnaire.tblTeacher.firstname,
                SurName = dbQuestionnaire.tblTeacher.surname
            };
            Subject subject = new Subject(dbQuestionnaire.tblSubject.id, dbQuestionnaire.tblSubject.name); // Subject object aanmaken
            Questionnaire questionnaire = new Questionnaire(dbQuestionnaire.id) // Questionnaire object aanmaken
            {
                Name = dbQuestionnaire.description,
                Author = author, // Teacher object koppelen
                Subject = subject, // Subject object koppelen
                Archived = dbQuestionnaire.archived
            };
            // Loop door alle questions binnen die questionnaire
            foreach (tblQuestion dbQuestion in dbQuestionnaire.tblQuestions)
            {
                Question question = ConvertDbQuestion(dbQuestion); // Converteert database object naar Question

                // Voeg vragen toe aan onze questionnaire
                questionnaire.Questions.Add(question);
            }
            return questionnaire;
        }
Пример #6
0
        public Questionnaire AddQuestionnaire(Teacher teacher, Questionnaire questionnaire)
        {
            try
            {
                tblQuestionnaire dbQuestionnaire = new tblQuestionnaire() // Maak database object aan
                {
                    author = questionnaire.Author.TeacherNr,
                    description = questionnaire.Name,
                    subject = questionnaire.Subject.Id
                };
                db.tblQuestionnaires.InsertOnSubmit(dbQuestionnaire); // Insert questionnaire in database
                db.SubmitChanges();

                questionnaire.ID = dbQuestionnaire.id; // Pas het ID aan van het Questionnaire object

                UpdateQuestionnaire(questionnaire); // Maak vervolgens gebruik van de update questionnaire functie om de overige data toe te voegen

                return GetQuestionnaire(dbQuestionnaire.id); // Return het aangemaakte questionnaire object
            }
            catch (SqlException ex) { MessageBox.Show(ex.Message); return null; }
        }
Пример #7
0
 public Exam(int id, Questionnaire questionnaire)
 {
     Examnr = id;
     Questionnaire = questionnaire;
 }
        //Verander de questionnaire van de model.
        public void SetQuestionnaire(Questionnaire q)
        {
            Model.Questionnaire = q;

            //Check of vragenlijst gearchiveerd is
            if (Model.Questionnaire.Archived)
            {
                DisableControls();
                View.lblNoEdit.Text = "Vragenlijst kan niet gewijzigd worden, omdat deze gearchiveerd is";
                View.lblNoEdit.Show();
            }
            //Check of huidige teacher de auteur is
            else if (((Teacher) MasterController.User).TeacherNr != Model.Questionnaire.Author.TeacherNr)
            {
                DisableControls();
                View.lblNoEdit.Text = "Vragenlijst kan alleen gewijzigd worden door auteur";
                View.lblNoEdit.Show();
            }
            //Check of de vragenlijst resultaten bevat
            else if (MasterController.DB.QuestionnaireContainsResults(Model.Questionnaire.ID))
            {
                DisableControls();
                View.lblNoEdit.Text = "Vragenlijst kan niet gewijzigd worden, omdat deze resultaten bevat";
                View.lblNoEdit.Show();
            }
            else
            {
                EnableControls();
                View.lblNoEdit.Hide();
            }
        }