public tblExam AddExam(Exam createdExam) { try { tblExam exam = new tblExam(); //Maak een exam aan en voeg alle gegevens toe n.a.v. de meegegeven exam. exam.starttime = createdExam.Starttime; exam.endtime = createdExam.Endtime; exam.id = createdExam.Examnr; exam.questionnaire = createdExam.Questionnaire.ID; exam.lecture = createdExam.Lecture.ID; db.tblExams.InsertOnSubmit(exam); //Voeg de exam toe aan de database en submit de changes. db.SubmitChanges(); return exam; } catch (SqlException ex) { MessageBox.Show(ex.Message); return null; //Wanneer er iets fout gaat, laat een messagebox zien met de SQL exception. } }
//Opslaan van een exam. public void SaveExam() { //Maak een nieuwe lecture aan met de gegevens uit de form. Lecture selectedLecture = new Lecture(0, (Teacher)MasterController.User, (Class)View.cbClasses.SelectedItem, (Subject)View.cbSubjects.SelectedItem); //Kijk of de lecture al in de database staat. Lecture dbLecture = MasterController.DB.CheckLecture(selectedLecture); //Als de lecture al in de database staat, selecteer deze. Zo niet: Maak een nieuwe lecture aan. if (dbLecture != null) { selectedLecture = dbLecture; } else { tblLecture newLecture = MasterController.DB.AddLecture(selectedLecture); Teacher newTeacher = new Teacher(newLecture.tblTeacher.nr, newLecture.tblTeacher.firstname, newLecture.tblTeacher.surname); Class newClass = new Class(newLecture.@class); Subject newSubject = new Subject(newLecture.tblSubject.id, newLecture.tblSubject.name); Lecture newActualLecture = new Lecture(newLecture.id, newTeacher, newClass, newSubject); selectedLecture = newActualLecture; } //Maak gegevens aan om een nieuwe exam te maken. (lecture was hier een deel van) Questionnaire selectedQuestionnaire = (Questionnaire)View.cbQuestionnaires.SelectedItem; DateTime selectedStartTime = new DateTime(View.dtpStarttimeDate.Value.Year, View.dtpStarttimeDate.Value.Month, View.dtpStarttimeDate.Value.Day, View.dtpStarttimeTime.Value.Hour, View.dtpStarttimeTime.Value.Minute, View.dtpStarttimeTime.Value.Second); DateTime selectedEndTime = new DateTime(View.dtpStarttimeDate.Value.Year, View.dtpStarttimeDate.Value.Month, View.dtpStarttimeDate.Value.Day, View.dtpEndtimeTime.Value.Hour, View.dtpEndtimeTime.Value.Minute, View.dtpEndtimeTime.Value.Second); //Maak de nieuwe exam aan met alle hiervoor gemaakte gegevens. Exam currentExam = new Exam(0, selectedQuestionnaire,selectedStartTime, selectedEndTime, selectedLecture); //Voeg de exam toe aan de database. MasterController.DB.AddExam(currentExam); //Laat een dialoogvenster zien dat de gebruiker er op wijst dat zijn data succesvol is toegevoegd. MessageBox.Show("De data is succesvol toegevoegd!"); ClearControls(); }
//Update een exam public void UpdateExam(Exam updatedExam) { try { tblExam tblExam = (from exam in db.tblExams //Selecteer de exam die geupdate moet worden. where exam.id == updatedExam.Examnr select exam).FirstOrDefault(); tblExam.questionnaire = updatedExam.Questionnaire.ID; tblExam.lecture = updatedExam.Lecture.ID; tblExam.starttime = updatedExam.Starttime; tblExam.endtime = updatedExam.Endtime;//Pas alle gegevens aan en submit alle changes. db.SubmitChanges(); } catch (SqlException ex) { MessageBox.Show(ex.Message); //Wanneer er iets fout gaat, laat een messagebox zien met de SQL exception. } }
public Boolean QuestionContainsAnswerFromUser(Exam Exam, Student student, Question Question) { db = new DatabaseDataContext(); tblResult result = db.tblResults.SingleOrDefault(g => g.student == student.StudentNr && g.exam == Exam.Examnr && g.question == Question.ID); if (result != null) { return true; } return false; }
// Haal alle afnamemomenten op die gegeven worden door een specifieke docent public List<Exam> GetExamsByTeacher(string teacherId) { try { List<Exam> exams = new List<Exam>(); foreach (tblExam tblExam in db.tblExams) //Ga alle exams langs en kijk of de teachernummer overeenkomt. { Lecture lecture = GetLecture(tblExam.lecture); if (lecture.Teacher.TeacherNr == teacherId) { Questionnaire questionnaire = GetQuestionnaire(tblExam.questionnaire); Exam exam = new Exam(tblExam.id, questionnaire, tblExam.starttime.Value, tblExam.endtime.Value, lecture); exams.Add(exam);//Wanneer de teachernummer overeenkomt, voeg de exam toe aan de lijst. } } return exams;//Return alle gevonden exams. } catch (SqlException ex) { MessageBox.Show(ex.Message);//Wanneer er iets fout gaat, laat een messagebox zien met de SQL exception. return null; } }
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; } }
// hier worden de afnamemomenten uit de database gehaald public List<Exam> GetAllExams() { try { List<Exam> exams = new List<Exam>(); foreach (tblExam tblExam in db.tblExams) { Questionnaire questionnaire = GetQuestionnaire(tblExam.questionnaire); Exam exam = new Exam(tblExam.id, questionnaire, tblExam.starttime.Value, tblExam.endtime.Value, GetLecture(tblExam.lecture)); exams.Add(exam); } return exams; } catch (SqlException ex) { MessageBox.Show(ex.Message);//Wanneer er iets fout gaat, laat een messagebox zien met de SQL exception. return null; } }
// hier worden de resultaten weergegeven public void ShowResults(Exam ex) { View.listQuestions.Items.Clear(); ClearChart(); AddQuestionsToList(ex.Questionnaire.Questions); }