public Exam(int id, Questionnaire questionnaire, DateTime starttime, DateTime endtime, int li) { Examnr = id; Questionnaire = questionnaire; Starttime = starttime; Endtime = endtime; LectureInt = li; }
public Exam(int id, Questionnaire questionnaire, DateTime starttime, DateTime endtime, Lecture lecture) { Examnr = id; Questionnaire = questionnaire; Starttime = starttime; Endtime = endtime; Lecture = lecture; }
// 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); } }
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; } }
// 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; }
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; } }
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(); } }