2025-06-03 08:31:45 +00:00
using projet.modele ;
namespace projet.dal
2025-05-27 14:17:40 +00:00
{
public class AbsenceAccess
{
2025-06-03 08:31:45 +00:00
private readonly Access access ;
public AbsenceAccess ( )
{
access = Access . GetInstance ( ) ;
}
public List < Absence > GetAbsences ( Personnel personnel )
{
List < Absence > absences = new List < Absence > ( ) ;
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 < string , object >
{
{ "@idPersonnel" , personnel . IdPersonnel }
} ;
try
{
// Exécute la requête de sélection
List < Object [ ] > 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 < string , object >
{
{ "@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 ) ;
}
}
}
2025-05-27 14:17:40 +00:00
2025-06-03 08:31:45 +00:00
public void DeleteAbsence ( Absence absence )
2025-05-27 14:17:40 +00:00
{
2025-06-03 08:31:45 +00:00
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 < string , object >
{
{ "@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 ) ;
}
}
2025-05-27 14:17:40 +00:00
}
}
}