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