@ -8,11 +8,15 @@ namespace espacecollab.backend.appservices;
public class CollaborateursService : GenericsServices < CollaborateurSqlDto , CollaborateurApiDto >
public class CollaborateursService : GenericsServices < CollaborateurSqlDto , CollaborateurApiDto >
{
{
private ICollaborateurRepository CollaborateurRepository { get ; }
private ICollaborateurRepository CollaborateurRepository { get ; }
private IPeriodeEssaiRepository PeriodeEssaiRepository { get ; }
private IReferencementRepository ReferencementRepository { get ; }
public CollaborateursService ( ICollaborateurRepository collaborateurRepository )
public CollaborateursService ( ICollaborateurRepository collaborateurRepository , IPeriodeEssaiRepository periodeEssaiRepository , IReferencementRepository referencementRepository )
: base ( collaborateurRepository , CollaborateurMapper . ToApi , CollaborateurMapper . ToSql )
: base ( collaborateurRepository , CollaborateurMapper . ToApi , CollaborateurMapper . ToSql )
{
{
CollaborateurRepository = collaborateurRepository ;
CollaborateurRepository = collaborateurRepository ;
PeriodeEssaiRepository = periodeEssaiRepository ;
ReferencementRepository = referencementRepository ;
}
}
public ( CollaborateurApiDto ? , int ) Add ( CollaborateurApiDto apiDto )
public ( CollaborateurApiDto ? , int ) Add ( CollaborateurApiDto apiDto )
@ -41,8 +45,6 @@ public class CollaborateursService : GenericsServices<CollaborateurSqlDto, Colla
return ( null , 2 ) ;
return ( null , 2 ) ;
}
}
CollaborateurSqlDto sqlDto = apiDto . ToSql ( ) ;
CollaborateurSqlDto sqlDto = apiDto . ToSql ( ) ;
CollaborateurSqlDto ? sqlDtoValidation = CollaborateurRepository . Update ( sqlDto ) ;
CollaborateurSqlDto ? sqlDtoValidation = CollaborateurRepository . Update ( sqlDto ) ;
@ -52,6 +54,37 @@ public class CollaborateursService : GenericsServices<CollaborateurSqlDto, Colla
return ( sqlDtoValidation . ToApi ( ) , 0 ) ;
return ( sqlDtoValidation . ToApi ( ) , 0 ) ;
}
}
public new bool Delete ( uint apiDtoId )
{
IEnumerable < ReferencementSqlDto > ? referencements = ReferencementRepository . GetAll ( ) ;
IEnumerable < PeriodeEssaiSqlDto > ? periodeEssais = PeriodeEssaiRepository . GetAll ( ) ;
if ( referencements . Any ( ) )
{
foreach ( var referencement in referencements )
{
if ( referencement . ReferredId = = apiDtoId | | referencement . ReferrerId = = apiDtoId )
{
ReferencementRepository . Delete ( referencement . Id ) ;
}
}
}
if ( periodeEssais . Any ( ) )
{
foreach ( var periodeEssai in periodeEssais )
{
if ( periodeEssai . CollaborateurId = = apiDtoId )
{
PeriodeEssaiRepository . Delete ( periodeEssai . Id ) ;
}
}
}
return CollaborateurRepository . Delete ( ( int ) apiDtoId ) ;
}
public IEnumerable < CollaborateurApiDto > GetCollaborateursByBusinessUnit ( uint businessUnitId )
public IEnumerable < CollaborateurApiDto > GetCollaborateursByBusinessUnit ( uint businessUnitId )
{
{
return CollaborateurRepository . GetCollaborateursByBusinessUnit ( ( int ) businessUnitId ) . Select ( collaborateurSql = > collaborateurSql . ToApi ( ) ) ;
return CollaborateurRepository . GetCollaborateursByBusinessUnit ( ( int ) businessUnitId ) . Select ( collaborateurSql = > collaborateurSql . ToApi ( ) ) ;
Pourquoi override la méthode alors que c'est la même ?
Dans l'override on utilise le CollaborateursServices, si on override pas on utilise un GenericServices de Collaborateur. Pour supprimer en cascade, j'ai modifié le CollaborateursServices pour essayer de rester cohérent dans les dépendances, et le fait d'override permet de forcer l'utilisation de ce service.