public void ModifyPresenceInModel(StudentAndPresence studentAndPresence) { var presenceEventuelle = GetPresenceFromModel(studentAndPresence.InternePresence); // Test si une presence est déjà encodée // Si c'est la cas : // il faut mettre à jour la présence encodée (type short) avec la nouvelle valeure (0 ou 1) if (presenceEventuelle != null && presenceEventuelle.Present != studentAndPresence.PresenceToShort()) { foreach (Presence presenceModel in App.Model.Presence) { if (presenceModel.CourseOccurence == studentAndPresence.InternePresence.CourseOccurence && presenceModel.Student == studentAndPresence.InterneStudent.Id) { presenceModel.Present = studentAndPresence.PresenceToShort(); } } App.Model.SaveChanges(); AfficherPresenceDeModel(); } else if (presenceEventuelle == null && studentAndPresence.PresenceToShort() == 1) { //si ce n'est pas le cas, c'est la 1er fois que cet étudiant est présent pour cette CO //Première fois que cet étudiant est coché présent, il faut insérer une nouvelle entrée s'il est présent uniquement Presence presenceNew = App.Model.Presence.Create(); presenceNew.Student = studentAndPresence.InterneStudent.Id; presenceNew.CourseOccurence = studentAndPresence.InternePresence.CourseOccurence; presenceNew.Present = 1; App.Model.Presence.Add(presenceNew); App.Model.SaveChanges(); AfficherPresenceDeModel(); } }
/** * Construit une collection observable de StudentAndPresence (ceci est une classe interne) * pour la ListeView de la vue PresenceView.XAML **/ private ObservableCollection <StudentAndPresence> BuildStudentAndPresence(Courseoccurrence courseOccurrence) { ObservableCollection <StudentAndPresence> res = new ObservableCollection <StudentAndPresence>(); foreach (Student st in StudentsSubscribedInCourse) { //pour chaque étudiant on regarde s'il possède une présence Presence presenceTemp = new Presence(st.Id, courseOccurrence.Id, SetStudentPresent(st)); StudentAndPresence studentAndPresence = new StudentAndPresence(st, presenceTemp); res.Add(studentAndPresence); } return(res); }