@ -71,7 +71,7 @@ namespace EPAServeur.Services
/// </summary>
/// </summary>
/// <param name="idCollaborateur">Id du collaborateur</param>
/// <param name="idCollaborateur">Id du collaborateur</param>
/// <returns></returns>
/// <returns></returns>
public async Task < IEnumerable < ParticipationFormationDTO > > GetParticipationByCollaborateurAsync ( Guid idCollaborateur )
public async Task < IEnumerable < ParticipationFormationDTO > > GetParticipations ByCollaborateurAsync ( Guid idCollaborateur )
{
{
IQueryable < ParticipationFormation > query ;
IQueryable < ParticipationFormation > query ;
IEnumerable < ParticipationFormation > participationFormations ;
IEnumerable < ParticipationFormation > participationFormations ;
@ -104,12 +104,13 @@ namespace EPAServeur.Services
{
{
ParticipationFormation participationFormation ;
ParticipationFormation participationFormation ;
IsEvaluationValide ( evaluationDTO ) ;
if ( ! evaluationDTO . Id . HasValue | | evaluationDTO . Id . Value ! = idParticipationFormation )
if ( ! evaluationDTO . Id . HasValue | | evaluationDTO . Id . Value ! = idParticipationFormation )
throw new ParticipationFormationIncompatibleIdException ( "L'id de la participation formation a mettre à jour et la participation formation a mettre à jour sont incompatble." ) ;
throw new ParticipationFormationIncompatibleIdException ( "L'id de la participation formation a mettre à jour et la participation formation a mettre à jour sont incompatble." ) ;
IsEvaluationValide ( evaluationDTO ) ;
participationFormation = await epContext . ParticipationFormation . Include ( p = > p . Evaluation )
participationFormation = await epContext . ParticipationFormation . Include ( p = > p . Evaluation )
. Include ( p = > p . Formation )
. FirstOrDefaultAsync ( p = > p . IdParticipationFormation = = idParticipationFormation ) ;
. FirstOrDefaultAsync ( p = > p . IdParticipationFormation = = idParticipationFormation ) ;
if ( participationFormation = = null )
if ( participationFormation = = null )
@ -146,7 +147,7 @@ namespace EPAServeur.Services
throw new ParticipationFormationInvalidException ( "L'intitulé de la formation doit contenir au moins 1 caractère." ) ;
throw new ParticipationFormationInvalidException ( "L'intitulé de la formation doit contenir au moins 1 caractère." ) ;
// Vérifier que la formation a bien une valeur permettant de dire si la formation est certifiée ou non
// Vérifier que la formation a bien une valeur permettant de dire si la formation est certifiée ou non
if ( ! evaluation . EstCertifie . HasValue )
if ( ! evaluation . EstCertifiee . HasValue )
throw new ParticipationFormationInvalidException ( "Impossible d'évaluer une formation sans savoir si la formation est certfiée ou non." ) ;
throw new ParticipationFormationInvalidException ( "Impossible d'évaluer une formation sans savoir si la formation est certfiée ou non." ) ;
// Vérifier que la formation a bien une date de début
// Vérifier que la formation a bien une date de début
@ -158,8 +159,8 @@ namespace EPAServeur.Services
throw new ParticipationFormationInvalidException ( "Impossible d'évaluer une formation sans saisie." ) ;
throw new ParticipationFormationInvalidException ( "Impossible d'évaluer une formation sans saisie." ) ;
// Vérifier que l'évaluation possède une note pour chaque saisie
// Vérifier que l'évaluation possède une note pour chaque saisie
if ( evaluation . Saisies . Any ( s = > ! s . Note . HasValue ) )
if ( evaluation . Saisies . Any ( s = > ! s . Note . HasValue & & ( s . TypeSaisie = = TypeSaisie . Competence | | s . TypeSaisie = = TypeSaisie . Notation ) ) )
throw new ParticipationFormationInvalidException ( "Toutes les saisies doivent posséder une note." ) ;
throw new ParticipationFormationInvalidException ( "Toutes les saisies de type compétence ou notation d oivent posséder une note." ) ;
}
}
#region Object to DTO
#region Object to DTO
@ -171,12 +172,19 @@ namespace EPAServeur.Services
/// <returns></returns>
/// <returns></returns>
private ParticipationFormationDTO GetParticipationFormationDTO ( ParticipationFormation participationFormation , IEnumerable < CollaborateurDTO > collaborateurDTOs )
private ParticipationFormationDTO GetParticipationFormationDTO ( ParticipationFormation participationFormation , IEnumerable < CollaborateurDTO > collaborateurDTOs )
{
{
if ( participationFormation = = null )
return null ;
if ( collaborateurDTOs = = null | | ! collaborateurDTOs . Any ( ) )
return null ;
ParticipationFormationDTO participationFormationDTO = new ParticipationFormationDTO ( )
ParticipationFormationDTO participationFormationDTO = new ParticipationFormationDTO ( )
{
{
Id = participationFormation . IdParticipationFormation ,
Id = participationFormation . IdParticipationFormation ,
DateCreation = participationFormation . DateCreation ,
DateCreation = participationFormation . DateCreation ,
Intitule = participationFormation . Formation . Intitule ,
Intitule = participationFormation . Formation . Intitule ,
DateDebut = participationFormation . Formation . DateDebut ,
DateDebut = participationFormation . Formation . DateDebut ,
EstEvaluee = participationFormation . EstEvaluee ,
Statut = GetStatutFormationDTO ( participationFormation . Formation . Statut ) ,
Statut = GetStatutFormationDTO ( participationFormation . Formation . Statut ) ,
Collaborateur = GetCollaborateurDTO ( participationFormation , collaborateurDTOs ) ,
Collaborateur = GetCollaborateurDTO ( participationFormation , collaborateurDTOs ) ,
Ep = GetEpInformationDTO ( participationFormation . DemandeFormation . Ep , collaborateurDTOs )
Ep = GetEpInformationDTO ( participationFormation . DemandeFormation . Ep , collaborateurDTOs )
@ -193,12 +201,15 @@ namespace EPAServeur.Services
/// <returns></returns>
/// <returns></returns>
private EvaluationDTO GetEvaluationDTO ( ParticipationFormation participationFormation )
private EvaluationDTO GetEvaluationDTO ( ParticipationFormation participationFormation )
{
{
if ( participationFormation = = null )
return null ;
EvaluationDTO evaluationDTO = new EvaluationDTO ( )
EvaluationDTO evaluationDTO = new EvaluationDTO ( )
{
{
Id = participationFormation . IdParticipationFormation ,
Id = participationFormation . IdParticipationFormation ,
Intitule = participationFormation . Formation . Intitule ,
Intitule = participationFormation . Formation . Intitule ,
DateDebut = participationFormation . Formation . DateDebut ,
DateDebut = participationFormation . Formation . DateDebut ,
EstCertifie = participationFormation . Formation . EstCertifiee ,
EstCertifiee = participationFormation . Formation . EstCertifiee ,
Saisies = participationFormation . Evaluation . Select ( s = > GetSaisieDTO ( s ) ) . ToList ( )
Saisies = participationFormation . Evaluation . Select ( s = > GetSaisieDTO ( s ) ) . ToList ( )
} ;
} ;
@ -258,6 +269,7 @@ namespace EPAServeur.Services
{
{
if ( statutFormation = = null )
if ( statutFormation = = null )
return null ;
return null ;
StatutFormationDTO statutFormationDTO = new StatutFormationDTO ( )
StatutFormationDTO statutFormationDTO = new StatutFormationDTO ( )
{
{
Id = statutFormation . IdStatutFormation ,
Id = statutFormation . IdStatutFormation ,
@ -273,7 +285,7 @@ namespace EPAServeur.Services
/// <returns></returns>
/// <returns></returns>
private async Task < IEnumerable < CollaborateurDTO > > GetCollaborateurDTOs ( IEnumerable < ParticipationFormation > participationsFormation )
private async Task < IEnumerable < CollaborateurDTO > > GetCollaborateurDTOs ( IEnumerable < ParticipationFormation > participationsFormation )
{
{
if ( ! participationsFormation . Any ( ) )
if ( participationsFormation = = null | | ! participationsFormation . Any ( ) )
return null ;
return null ;
List < Guid ? > guids = participationsFormation . SelectMany ( participationFormation = > new [ ] { ( Guid ? ) participationFormation . DemandeFormation . Ep . IdCollaborateur , participationFormation . DemandeFormation . Ep . IdReferent } ) . ToList ( ) ;
List < Guid ? > guids = participationsFormation . SelectMany ( participationFormation = > new [ ] { ( Guid ? ) participationFormation . DemandeFormation . Ep . IdCollaborateur , participationFormation . DemandeFormation . Ep . IdReferent } ) . ToList ( ) ;
@ -288,6 +300,12 @@ namespace EPAServeur.Services
/// <returns></returns>
/// <returns></returns>
private CollaborateurDTO GetCollaborateurDTO ( ParticipationFormation participationFormation , IEnumerable < CollaborateurDTO > collaborateurDTOs )
private CollaborateurDTO GetCollaborateurDTO ( ParticipationFormation participationFormation , IEnumerable < CollaborateurDTO > collaborateurDTOs )
{
{
if ( participationFormation = = null )
return null ;
if ( collaborateurDTOs = = null | | ! collaborateurDTOs . Any ( ) )
return null ;
return collaborateurDTOs . FirstOrDefault ( collaborateurDTO = > collaborateurDTO . Id = = participationFormation . DemandeFormation . Ep . IdCollaborateur ) ;
return collaborateurDTOs . FirstOrDefault ( collaborateurDTO = > collaborateurDTO . Id = = participationFormation . DemandeFormation . Ep . IdCollaborateur ) ;
}
}
@ -301,6 +319,12 @@ namespace EPAServeur.Services
CollaborateurDTO collaborateur ;
CollaborateurDTO collaborateur ;
CollaborateurDTO referent ;
CollaborateurDTO referent ;
if ( ep = = null )
return null ;
if ( collaborateurDTOs = = null | | ! collaborateurDTOs . Any ( ) )
return null ;
collaborateur = collaborateurDTOs . FirstOrDefault ( collaborateurDTO = > collaborateurDTO . Id = = ep . IdCollaborateur ) ;
collaborateur = collaborateurDTOs . FirstOrDefault ( collaborateurDTO = > collaborateurDTO . Id = = ep . IdCollaborateur ) ;
referent = collaborateurDTOs . FirstOrDefault ( collaborateurDTO = > collaborateurDTO . Id = = ep . IdReferent ) ;
referent = collaborateurDTOs . FirstOrDefault ( collaborateurDTO = > collaborateurDTO . Id = = ep . IdReferent ) ;
@ -331,14 +355,18 @@ namespace EPAServeur.Services
/// <returns></returns>
/// <returns></returns>
private Saisie GetSaisie ( SaisieDTO saisieDTO )
private Saisie GetSaisie ( SaisieDTO saisieDTO )
{
{
if ( saisieDTO = = null )
return null ;
Saisie saisie = new Saisie ( )
Saisie saisie = new Saisie ( )
{
{
IdSaisie = saisieDTO . Id . Value ,
//IdSaisie = saisieDTO.Id.Value ,
Note = saisieDTO . Note ,
Note = saisieDTO . Note ,
Texte = saisieDTO . Texte ,
Texte = saisieDTO . Texte ,
Champ = GetChamp ( saisieDTO . Champ ) ,
Champ = GetChamp ( saisieDTO . Champ ) ,
TypeSaisie = saisieDTO . TypeSaisie
TypeSaisie = saisieDTO . TypeSaisie
} ;
} ;
return saisie ;
return saisie ;
}
}
@ -349,6 +377,9 @@ namespace EPAServeur.Services
/// <returns></returns>
/// <returns></returns>
private Champ GetChamp ( ChampDTO champDTO )
private Champ GetChamp ( ChampDTO champDTO )
{
{
if ( champDTO = = null )
return null ;
Champ champ = new Champ ( )
Champ champ = new Champ ( )
{
{
IdChamp = champDTO . Id . Value ,
IdChamp = champDTO . Id . Value ,