public Lecture(int id, Teacher teacher, Class Class, Subject subject) { ID = id; Teacher = teacher; this.Class = Class; Subject = subject; }
//Wanneer er op edit is geklikt, sla al de data op. public void EditClicked() { //Zet de nieuwe klas in de model. Class newClass = (Class)View.cbClass.SelectedItem; if (View.cbClass.SelectedItem == null) { newClass = Model.LocallyEditedExam.Lecture.Class; } //Zet het nieuwe vak in de model. Subject newSubject = (Subject)View.cbSubject.SelectedItem; if (View.cbSubject.SelectedItem == null) { newSubject = Model.LocallyEditedExam.Lecture.Subject; } //Maak indien nodig een nieuwe lecture aan als gegeven voor de nieuwe les. Lecture newLecture = new Lecture(0, (Teacher)MasterController.User, newClass, newSubject); Lecture dbLecture = MasterController.DB.CheckLecture(newLecture); //Bestaat de lecture die we proberen tee maken? if (dbLecture != null) { //De lecture bestaat al, gebruik deze. newLecture = dbLecture; } else { //De lecture bestaat niet, maak een nieuwe aan. tblLecture tblLecture = MasterController.DB.AddLecture(newLecture); Teacher newTeacher = new Teacher(tblLecture.tblTeacher.nr, tblLecture.tblTeacher.firstname, tblLecture.tblTeacher.surname); Class newActualClass = new Class(tblLecture.@class); Subject newActualSubject = new Subject(tblLecture.tblSubject.id, tblLecture.tblSubject.name); Lecture newActualLecture = new Lecture(tblLecture.id, newTeacher, newActualClass, newActualSubject); newLecture = newActualLecture; } //Maak de overige benodigde gegevens voor Exam. Model.LocallyEditedExam.Lecture = newLecture; Model.Exam = Model.LocallyEditedExam; Model.Event.Tag = Model.Exam; //Voeg de nieuwe exam toe aan de database. MasterController.DB.UpdateExam(Model.Exam); //Verander de kleur van elke label in zwart en kijk hoeveel dingen er veranderd zijn. int changeCount = 0; foreach (Control control in ((EditExamView)GetView()).Controls) { if (control is Label) { if (!((Label)control).ForeColor.ToArgb().Equals(Color.Black.ToArgb())) { changeCount++; } ((Label)control).ForeColor = Color.Black; } } //Maak een messagebox aan met alle dingen die gewijzigd zijn en ook de hoeveelheid hierbij. string changes = "wijziging"; if (changeCount > 1 || changeCount == 0) changes += "en"; MessageBox.Show("Wijziging toegepast"); }
//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(); }
// Haal alle vakken op public List<Subject> GetSubjects() { try { List<Subject> subjects = new List<Subject>(); //Maak een lijst voor alle subjects foreach (tblSubject tblSubject in db.tblSubjects) //Haal alle subjects op uit de database en voeg ze toe aan de lijst { Subject subject = new Subject(tblSubject.id, tblSubject.name); subjects.Add(subject); } return subjects;//Return de lijst met subjects. } catch (SqlException ex) { MessageBox.Show(ex.Message);//Wanneer er iets fout gaat, laat een messagebox zien met de SQL exception. 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; }
// Deze functie wordt gebruikt om het database object tblLecture te converteren naar een Lecture object die vervolgens gebruikt kan worden in het programma public Lecture ConvertDbLecture(tblLecture dbLecture) { Teacher teacher = new Teacher() // Teacher object aanmaken { TeacherNr = dbLecture.tblTeacher.nr, FirstName = dbLecture.tblTeacher.firstname, SurName = dbLecture.tblTeacher.surname }; Class clas = new Class(dbLecture.@class); // Class object aanmaken Subject subject = new Subject(dbLecture.tblSubject.id, dbLecture.tblSubject.name); // Subject object aanmaken Lecture lecture = new Lecture(dbLecture.id, teacher, clas, subject); // Lecture aanmaken met bovenstaande aangemaakte objecten return lecture; }
//Selecteer vak in de combobox van de huidige Questionnaire public void SelectSubject(Subject subject) { foreach (object item in View.cbSubject.Items) { Subject s = (Subject) item; if (subject.Id == s.Id) View.cbSubject.SelectedItem = s; } }