mediatek86/Mediatek86/dal/MotifAccess.cs

150 lines
5.1 KiB
C#

using projet.modele;
using System;
using System.Collections.Generic;
using System.Deployment.Application;
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;
}
public Motif GetMotifById(int idMotif)
{
Motif motif = null;
if (access.Manager != null)
{
string req = "SELECT * FROM motif WHERE idMotif = @idMotif;";
var parameters = new Dictionary<string, object>
{
{ "@idMotif", idMotif }
};
try
{
List<Object[]> 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<string, object>
{
{ "@idMotif", idMotif }
};
try
{
List<Object[]> 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;
}
}
}