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(); } }