using projet.modele; namespace projet.dal { public class AbsenceAccess { private readonly Access access; public AbsenceAccess() { access = Access.GetInstance(); } public List GetAbsences(Personnel personnel) { List absences = new List(); if (access.Manager != null) { // Sélecte toutes les absence + join libelle du motif d'absence string req2 = "SELECT a.idPersonnel, a.dateDebut, a.dateFin, m.libelle FROM absence a JOIN motif m ON a.idMotif = m.idMotif WHERE a.idPersonnel = @idPersonnel ORDER BY a.dateDebut;"; //string req = "SELECT * FROM absence WHERE idPersonnel = @idPersonnel ORDER BY dateDebut;"; var parameters = new Dictionary { { "@idPersonnel", personnel.IdPersonnel } }; try { // Exécute la requête de sélection List resultats = access.Manager.ReqSelect(req2, parameters); if (resultats != null) { // Parcourt les résultats et crée des objets Absence foreach (Object[] resultat in resultats) { Absence absence = new Absence( Convert.ToInt32(resultat[0]), // IdPersonnel Convert.ToDateTime(resultat[1]), // DateDebut Convert.ToDateTime(resultat[2]), // DateFin Convert.ToString(resultat[3])// Motif ); absences.Add(absence); } } return absences; } catch (Exception) { Console.WriteLine("Erreur lors de la récupération des absences du personnel."); Environment.Exit(0); } } return absences; } public void AddAbsence(Absence absence, Personnel personne) { if (access.Manager != null) { string req = "INSERT INTO absence (idPersonnel, dateDebut, dateFin, idMotif) VALUES (@idPersonnel, @dateDebut, @dateFin, @idMotif);"; var parameters = new Dictionary { { "@idPersonnel", personne.IdPersonnel }, { "@dateDebut", absence.DateDebut }, { "@dateFin", absence.DateFin }, { "@idMotif", Convert.ToInt32(absence.IdMotif) } }; try { access.Manager.ReqUpdate(req, parameters); } catch (Exception) { Console.WriteLine("Erreur lors de l'ajout de l'absence."); Environment.Exit(0); } } } public void DeleteAbsence(Absence absence) { if (access.Manager != null) { string req = "DELETE FROM absence WHERE idPersonnel = @idPersonnel AND dateDebut = @dateDebut AND dateFin = @dateFin AND idMotif = @idMotif;"; var parameters = new Dictionary { { "@idPersonnel", absence.IdPersonnel }, { "@dateDebut", absence.DateDebut }, { "@dateFin", absence.DateFin }, { "@idMotif", Convert.ToInt32(absence.IdMotif) } }; try { access.Manager.ReqUpdate(req, parameters); } catch (Exception) { Console.WriteLine("Erreur lors de la suppression de l'absence."); Environment.Exit(0); } } } } }