87 lines
2.9 KiB
C#
87 lines
2.9 KiB
C#
using projet.modele;
|
|
|
|
namespace projet.dal
|
|
{
|
|
/// <summary>
|
|
/// Méthodes d'accès aux données pour les absences du personnel.
|
|
/// </summary>
|
|
public class MotifAccess
|
|
{
|
|
private readonly Access access;
|
|
|
|
/// <summary>
|
|
/// Récupère l'instance de la classe Access pour accéder à la base de données.
|
|
/// </summary>
|
|
public MotifAccess()
|
|
{
|
|
access = Access.GetInstance();
|
|
}
|
|
|
|
/// <summary>
|
|
/// Méthode pour récupérer tous les motifs d'absence.
|
|
/// </summary>
|
|
/// <returns>Liste de motifs</returns>
|
|
public List<Motif> GetAllMotifs()
|
|
{
|
|
List<Motif> motifList = new List<Motif>();
|
|
if (access.Manager != null)
|
|
{
|
|
string req = "SELECT * FROM motif ORDER BY libelle;";
|
|
try
|
|
{
|
|
List<Object[]> 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;
|
|
}
|
|
|
|
/// <summary>
|
|
/// Méthode pour récupérer l'ID d'un motif par son libellé.
|
|
/// </summary>
|
|
/// <param name="libelle">libelle du motif souhaité</param>
|
|
/// <returns>Id du motif</returns>
|
|
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<string, object>
|
|
{
|
|
{ "@libelle", libelle }
|
|
};
|
|
try
|
|
{
|
|
List<Object[]> 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;
|
|
}
|
|
}
|
|
}
|