using projet.modele; using System; using System.Collections.Generic; using System.Deployment.Application; namespace projet.dal { /// /// Méthodes d'accès aux données pour les absences du personnel. /// public class MotifAccess { private readonly Access access; /// /// Récupère l'instance de la classe Access pour accéder à la base de données. /// public MotifAccess() { access = Access.GetInstance(); } /// /// Méthode pour récupérer tous les motifs d'absence. /// /// Liste de motifs public List GetAllMotifs() { List motifList = new List(); if (access.Manager != null) { string req = "SELECT * FROM motif ORDER BY libelle;"; try { List resultats = access.Manager.ReqSelect(req); if (resultats != null) { foreach (Object[] resultat in resultats) { Motif motif = new Motif( Convert.ToInt32(resultat[0]), // IdMotif Convert.ToString(resultat[1]) // Libelle ); motifList.Add(motif); } } } catch (Exception) { Console.WriteLine("Erreur lors de la récupération des données des motifs."); Environment.Exit(0); } } return motifList; } /// /// Méthode pour récupérer l'ID d'un motif par son libellé. /// /// libelle du motif souhaité /// Id du motif public int GetMotifIdByLibelle(string libelle) { int idMotif = -1; if (access.Manager != null) { string req = "SELECT idMotif FROM motif WHERE libelle = @libelle;"; var parameters = new Dictionary { { "@libelle", libelle } }; try { List resultats = access.Manager.ReqSelect(req, parameters); if (resultats != null && resultats.Count > 0) { idMotif = Convert.ToInt32(resultats[0][0]); } return idMotif; } catch (Exception) { Console.WriteLine("Erreur lors de la récupération de l'ID du motif par libellé."); Environment.Exit(0); } } return idMotif; } public Motif GetMotifById(int idMotif) { Motif motif = null; if (access.Manager != null) { string req = "SELECT * FROM motif WHERE idMotif = @idMotif;"; var parameters = new Dictionary { { "@idMotif", idMotif } }; try { List resultats = access.Manager.ReqSelect(req, parameters); if (resultats != null && resultats.Count > 0) { Object[] resultat = resultats[0]; motif = new Motif( Convert.ToInt32(resultat[0]), // IdMotif Convert.ToString(resultat[1]) // Libelle ); } return motif; } catch (Exception) { Console.WriteLine("Erreur lors de la récupération du motif par ID."); Environment.Exit(0); } } return motif; } public string GetLibelleById(int idMotif) { string libelle = string.Empty; if (access.Manager != null) { string req = "SELECT libelle FROM motif WHERE idMotif = @idMotif;"; var parameters = new Dictionary { { "@idMotif", idMotif } }; try { List resultats = access.Manager.ReqSelect(req, parameters); if (resultats != null && resultats.Count > 0) { libelle = Convert.ToString(resultats[0][0]); } return libelle; } catch (Exception) { Console.WriteLine("Erreur lors de la récupération du libellé du motif par ID."); Environment.Exit(0); } } return libelle; } } }