diff --git a/EPAServeur.Tests/Services/EpDetailsServiceTests.cs b/EPAServeur.Tests/Services/EpDetailsServiceTests.cs index 423a97c..16a3628 100644 --- a/EPAServeur.Tests/Services/EpDetailsServiceTests.cs +++ b/EPAServeur.Tests/Services/EpDetailsServiceTests.cs @@ -253,6 +253,20 @@ namespace EPAServeur.Tests.Services } #endregion + #region Demande EPI + [TestCase(4)] + [TestCase(8)] + [TestCase(13)] + public async Task GetEp_GetDemandeEPI(long idEp) + { + IEpDetailsService epDetailsService = new EpDetailsService(context, transformDTO, collaborateurService); + EpDTO epDTO = await epDetailsService.GetEp(idEp); + Assert.IsNotNull(epDTO); + Assert.IsNotNull(epDTO.DemandeEPI); + Assert.IsTrue(epDTO.Collaborateur.Id.Equals(epDTO.DemandeEPI.Collaborateur.Id)); + Assert.AreEqual(epDTO.DemandeEPI.EtatDemande, EtatDemande.Validee); + } + #endregion #region Récupérer EP avec demandes de formation #endregion @@ -262,8 +276,6 @@ namespace EPAServeur.Tests.Services - #region Demande EPI - #endregion #region #endregion diff --git a/EPAServeur/Context/DataSeeder.cs b/EPAServeur/Context/DataSeeder.cs index 925e088..de40699 100644 --- a/EPAServeur/Context/DataSeeder.cs +++ b/EPAServeur/Context/DataSeeder.cs @@ -104,6 +104,8 @@ namespace EPAServeur.Context ObjectifPrecedent objectifPrecedent1, objectifPrecedent2, objectifPrecedent3, objectifPrecedent4, objectifPrecedent5, objectifPrecedent6; + DemandeEPI demandeEPI1, demandeEPI2, demandeEPI3; + //Ep en cours Ep epEnCours1, epEnCours2, epEnCours3, epEnCours4, epEnCours5, epEnCours6, epEnCours7, epEnCours8, epEnCours9; @@ -276,6 +278,17 @@ namespace EPAServeur.Context EtatDemande = EtatDemande.EnAttente, RaisonDemande = "Raison quelconque 2" }; + + demandeEPI1 = new DemandeEPI() + { + IdReferent = new Guid("eb8b0f33-f529-4985-861e-1207f3312bb5"), + Ep = epEnCours4, + DateDemande = new DateTime(), + DateReponse = new DateTime(), + EtatDemande = EtatDemande.Validee, + IdCollaborateur = new Guid("a0f40e2a-cc03-4032-a627-5389e1281c64") + }; + epEnCours4.DemandeEPI = demandeEPI1; epEnCours4.DemandeDelegation = dm2; choix5 = new ChoixTypeEntretien() @@ -437,6 +450,17 @@ namespace EPAServeur.Context RaisonDemande = "Raison quelconque 3" }; epEnCours8.DemandeDelegation = dm3; + + demandeEPI2 = new DemandeEPI() + { + IdReferent = new Guid("ea027734-ff0f-4308-8879-133a09fb3c46"), + Ep = epEnCours8, + DateDemande = new DateTime(), + DateReponse = new DateTime(), + EtatDemande = EtatDemande.Validee, + IdCollaborateur = new Guid("0968ccd3-1ef5-4041-83f3-1c76afb02bbf"), + }; + epEnCours8.DemandeEPI = demandeEPI2; epEnCours9 = new Ep() { @@ -561,6 +585,17 @@ namespace EPAServeur.Context IdCollaborateur = new Guid("a0f40e2a-cc03-4032-a627-5389e1281c64"), Obligatoire = false, }; + demandeEPI3 = new DemandeEPI() + { + IdReferent = new Guid("eb8b0f33-f529-4985-861e-1207f3312bb5"), + IdCollaborateur = new Guid("a0f40e2a-cc03-4032-a627-5389e1281c64"), + DateDemande = new DateTime(), + EtatDemande = EtatDemande.Validee, + DateReponse = new DateTime(), + Ep = epSigne4 + }; + epSigne4.DemandeEPI = demandeEPI3; + epContext.Ep.Add(epSigne4); epSigne5 = new Ep() diff --git a/EPAServeur/Services/EpDetailsService.cs b/EPAServeur/Services/EpDetailsService.cs index 91abdb3..55663f7 100644 --- a/EPAServeur/Services/EpDetailsService.cs +++ b/EPAServeur/Services/EpDetailsService.cs @@ -36,6 +36,7 @@ namespace EPAServeur.Services .Include(ep => ep.ChoixTypeEntretien).ThenInclude( c => c.TypeEntretien) .Include(ep => ep.Objectifs) .Include(ep => ep.ObjectifsPrecedents) + .Include(ep => ep.DemandeEPI) .FirstOrDefaultAsync(ep => ep.IdEP.Equals(id)); if (ep == null) throw new EpNotFoundException(); @@ -53,6 +54,8 @@ namespace EPAServeur.Services guids.AddRange(ep.CommentairesAssistant.SelectMany(p => new[] { (Guid?)p.IdAssistant })); if (ep.DemandeDelegation != null) guids.Add(ep.DemandeDelegation.IdReferent); + if (ep.DemandeEPI != null && ep.DemandeEPI.IdReferent != null) + guids.Add(ep.DemandeEPI.IdReferent); IEnumerable collaborateurDTOs = await collaborateurService.GetCollaborateurDTOsAsync(guids); diff --git a/EPAServeur/Services/TransformDTO.cs b/EPAServeur/Services/TransformDTO.cs index f29d3cd..935137c 100644 --- a/EPAServeur/Services/TransformDTO.cs +++ b/EPAServeur/Services/TransformDTO.cs @@ -69,7 +69,8 @@ namespace EPAServeur.Services PropositionsEntretien = GetRDVEntretienDTOs(ep.PropositionsRDV), ChoixTypeEntretien = GetTypeEntretienDTOs(ep.ChoixTypeEntretien), Objectifs = GetObjectifDTOs(ep.Objectifs), - ObjectifsPrecedent = GetObjectifPrecedentDTO(ep.ObjectifsPrecedents) + ObjectifsPrecedent = GetObjectifPrecedentDTO(ep.ObjectifsPrecedents), + DemandeEPI = GetDemandeEPIDTO(ep.DemandeEPI, collaborateurDTOs) }; } @@ -290,7 +291,18 @@ namespace EPAServeur.Services /// public DemandeEPIDTO GetDemandeEPIDTO(DemandeEPI demande, IEnumerable collaborateurDTOs) { - throw new NotImplementedException(); + if (demande == null) + return null; + return new DemandeEPIDTO() + { + Collaborateur = collaborateurDTOs.FirstOrDefault(c => c.Id.Equals(demande.IdCollaborateur)), + Id = demande.IdDemandeEPI, + DateDemande = demande.DateDemande, + DateReponse = demande.DateReponse, + EtatDemande = demande.EtatDemande, + RaisonRefus = demande.RaisonRefus, + Referent = collaborateurDTOs.FirstOrDefault(c => c.Id.Equals(demande.IdReferent)) + }; }