diff --git a/EPAServeur.Tests/Services/EpDetailsServiceTests.cs b/EPAServeur.Tests/Services/EpDetailsServiceTests.cs
index 0058240..fba6ccb 100644
--- a/EPAServeur.Tests/Services/EpDetailsServiceTests.cs
+++ b/EPAServeur.Tests/Services/EpDetailsServiceTests.cs
@@ -37,7 +37,7 @@ namespace EPAServeur.Tests.Services
context.Database.EnsureDeleted();
context.Database.EnsureCreated();
context.SaveChanges();
-
+ DataSeeder.AddTypesEntretien(context);
DataSeeder.AddEp(context);
foreach (var entity in context.ChangeTracker.Entries())
@@ -166,10 +166,45 @@ namespace EPAServeur.Tests.Services
}
#endregion
- #region Récupérer EP avec RDV entretiens
+ #region Récupérer EP avec RDV entretiens
+ [TestCase(2)]
+ [TestCase(5)]
+ [TestCase(12)]
+ public async Task GetEp_GetRDVEntretien(long idEp)
+ {
+ IEpDetailsService epDetailsService = new EpDetailsService(context, transformDTO, collaborateurService);
+ EpDTO epDTO = await epDetailsService.GetEp(idEp);
+ Assert.IsNotNull(epDTO);
+ Assert.IsNotNull(epDTO.RdvEntretien);
+ Assert.IsNotNull(epDTO.RdvEntretien.DateEntretien);
+ }
+
+ [TestCase(1, 0)]
+ [TestCase(2, 3)]
+ [TestCase(5, 2)]
+ [TestCase(11, 0)]
+ [TestCase(13, 0)]
+ public async Task GetEp_GetPropositionRDVEntretien(long idEp, int count)
+ {
+ IEpDetailsService epDetailsService = new EpDetailsService(context, transformDTO, collaborateurService);
+ EpDTO epDTO = await epDetailsService.GetEp(idEp);
+ Assert.IsNotNull(epDTO);
+ if( count == 0)
+ {
+ Assert.IsNull(epDTO.PropositionsEntretien);
+ }
+ else
+ {
+ Assert.IsNotNull(epDTO.PropositionsEntretien);
+ Assert.AreEqual(epDTO.PropositionsEntretien.Count, count);
+ Assert.IsTrue(epDTO.PropositionsEntretien.Count <= 3);
+ Assert.IsTrue(epDTO.PropositionsEntretien.Count > 0);
+ Assert.Less(epDTO.Statut, StatutEp.Effectue);
+ }
+ }
#endregion
- #region Récupérer EP avec type entretien
+ #region Récupérer EP avec choix type entretien
#endregion
diff --git a/EPAServeur/Context/DataSeeder.cs b/EPAServeur/Context/DataSeeder.cs
index d957ce7..65d3556 100644
--- a/EPAServeur/Context/DataSeeder.cs
+++ b/EPAServeur/Context/DataSeeder.cs
@@ -63,16 +63,16 @@ namespace EPAServeur.Context
//TypeEntretien
TypeEntretien typeSite, typeClient, typeVisio, typeTelephone;
- typeSite = new TypeEntretien { Libelle = "Sur site" };
+ typeSite = new TypeEntretien { IdTypeEntretien = 1, Libelle = "Sur site" };
epContext.TypeEntretien.Add(typeSite);
- typeClient = new TypeEntretien { Libelle = "Chez le client" };
+ typeClient = new TypeEntretien { IdTypeEntretien = 2, Libelle = "Chez le client" };
epContext.TypeEntretien.Add(typeClient);
- typeVisio = new TypeEntretien { Libelle = "Visioconférence" };
+ typeVisio = new TypeEntretien { IdTypeEntretien = 3, Libelle = "Visioconférence" };
epContext.TypeEntretien.Add(typeVisio);
- typeTelephone = new TypeEntretien { Libelle = "Téléphonique" };
+ typeTelephone = new TypeEntretien { IdTypeEntretien = 4, Libelle = "Téléphonique" };
epContext.TypeEntretien.Add(typeTelephone);
epContext.SaveChanges();
@@ -84,11 +84,21 @@ namespace EPAServeur.Context
///
public static void AddEp(EpContext epContext)
{
+ TypeEntretien typeSite, typeClient, typeVisio, typeTelephone;
+ typeSite = epContext.TypeEntretien.Find((long)1);
+ typeClient = epContext.TypeEntretien.Find((long)2);
+ typeVisio = epContext.TypeEntretien.Find((long)3);
+ typeTelephone = epContext.TypeEntretien.Find((long)4);
+
Engagement eg1, eg2, eg3, eg4;
ParticipationEP p1, p2, p3, p4, p5;
CommentaireAssistant ca1, ca2, ca3;
DemandeDelegation dm1, dm2, dm3;
-
+ RdvEntretien rdv1, rdv2, rdv3;
+
+ RdvEntretien proposition1, proposition2, proposition3;
+
+
//Ep en cours
Ep epEnCours1, epEnCours2, epEnCours3, epEnCours4, epEnCours5, epEnCours6, epEnCours7, epEnCours8, epEnCours9;
@@ -141,6 +151,32 @@ namespace EPAServeur.Context
RaisonDemande = "Raison quelconque 1"
};
epEnCours2.DemandeDelegation = dm1;
+
+ rdv1 = new RdvEntretien()
+ {
+ IdRdvEntretien = 1,
+ DateEntretien = new DateTime(),
+ EpChoixRDV = epEnCours2,
+ TypeEntretien = typeClient,
+ EpProposition = epEnCours2
+ };
+
+ epEnCours2.RdvEntretien = rdv1;
+ proposition1 = new RdvEntretien()
+ {
+ DateEntretien = new DateTime(),
+ EpProposition = epEnCours2,
+ IdRdvEntretien = 2,
+ TypeEntretien = typeSite
+ };
+ proposition2 = new RdvEntretien()
+ {
+ DateEntretien = new DateTime(),
+ EpProposition = epEnCours2,
+ IdRdvEntretien = 3,
+ TypeEntretien = typeVisio
+ };
+ epEnCours2.PropositionsRDV = new List(new[] { rdv1, proposition1, proposition2 });
epContext.Ep.Add(epEnCours2);
@@ -170,7 +206,10 @@ namespace EPAServeur.Context
EstPermanente = false
};
epEnCours3.Participants = new List(new[] { p1, p2 });
-
+
+
+
+
epContext.Ep.Add(epEnCours3);
epEnCours4 = new Ep()
@@ -208,6 +247,8 @@ namespace EPAServeur.Context
IdCollaborateur = new Guid("17b87130-0e9d-4b78-b0e3-a11e5f70318d"),
Obligatoire = true,
};
+
+
p3 = new ParticipationEP()
{
Ep = epEnCours5,
@@ -215,6 +256,29 @@ namespace EPAServeur.Context
EstPermanente = false
};
epEnCours5.Participants = new List(new[] { p3 });
+
+ rdv2 = new RdvEntretien()
+ {
+ DateEntretien = new DateTime(),
+ EpProposition = epEnCours5,
+ IdRdvEntretien = 4,
+ TypeEntretien = typeSite,
+ EpChoixRDV = epEnCours5
+ };
+
+ proposition3 = new RdvEntretien()
+ {
+ DateEntretien = new DateTime(),
+ EpProposition = epEnCours5,
+ IdRdvEntretien = 5,
+ TypeEntretien = typeSite
+ };
+
+
+
+ epEnCours5.PropositionsRDV = new List(new[] { rdv2, proposition3 });
+ epEnCours5.RdvEntretien = rdv2;
+
epContext.Ep.Add(epEnCours5);
epEnCours6 = new Ep()
@@ -384,8 +448,21 @@ namespace EPAServeur.Context
IdCollaborateur = new Guid("b5254c6c-7caa-435f-a4bb-e0cf92559832"),
Obligatoire = false,
};
+
+ rdv3 = new RdvEntretien()
+ {
+ IdRdvEntretien = 6,
+ TypeEntretien = typeVisio,
+ DateEntretien = new DateTime(),
+ EpChoixRDV = epSigne3
+ };
+
+ epSigne3.RdvEntretien = rdv3;
epContext.Ep.Add(epSigne3);
+
+
+
epSigne4 = new Ep()
{
DateDisponibilite = new DateTime(2017, 1, 20),
diff --git a/EPAServeur/DTO/TypeEntretienDTO.cs b/EPAServeur/DTO/TypeEntretienDTO.cs
index d7cda37..6f1ece4 100644
--- a/EPAServeur/DTO/TypeEntretienDTO.cs
+++ b/EPAServeur/DTO/TypeEntretienDTO.cs
@@ -32,7 +32,7 @@ namespace IO.Swagger.DTO
/// Id du type de l'entretien
[Required]
[DataMember(Name="id")]
- public int? Id { get; set; }
+ public long? Id { get; set; }
///
/// Texte du type de l'entretien
diff --git a/EPAServeur/IServices/ITransformDTO.cs b/EPAServeur/IServices/ITransformDTO.cs
index 3b6e841..0f1249d 100644
--- a/EPAServeur/IServices/ITransformDTO.cs
+++ b/EPAServeur/IServices/ITransformDTO.cs
@@ -80,6 +80,8 @@ namespace EPAServeur.IServices
AugmentationSalaireDTO GetAugmentationSalaireDTO(AugmentationSalaire augmentation);
RDVEntretienDTO GetRDVEntretienDTO(RdvEntretien rdvEntretien);
TypeEntretienDTO GetEntretienDTO(ChoixTypeEntretien choixTypeEntretien);
+ TypeEntretienDTO GetEntretienDTO(TypeEntretien typeEntretien);
+ List GetRDVEntretienDTOs(List rdvEntretiens);
DemandeFormationDTO GetDemandeFormationDTOEP(DemandeFormation demandeFormation);
DocumentDTO GetDocumentDTO(Document document);
ObjectifDTO GetObjectifDTO(Objectif objectif);
diff --git a/EPAServeur/Services/EpDetailsService.cs b/EPAServeur/Services/EpDetailsService.cs
index e49b8f4..28babed 100644
--- a/EPAServeur/Services/EpDetailsService.cs
+++ b/EPAServeur/Services/EpDetailsService.cs
@@ -31,6 +31,8 @@ namespace EPAServeur.Services
.Include(ep => ep.Participants)
.Include(ep => ep.CommentairesAssistant)
.Include(ep => ep.DemandeDelegation)
+ .Include(ep => ep.RdvEntretien).ThenInclude(rdv => rdv.TypeEntretien)
+ .Include(ep => ep.PropositionsRDV).ThenInclude(rdv => rdv.TypeEntretien)
.FirstOrDefaultAsync(ep => ep.IdEP.Equals(id));
if (ep == null)
throw new EpNotFoundException();
diff --git a/EPAServeur/Services/TransformDTO.cs b/EPAServeur/Services/TransformDTO.cs
index 9d4be93..cac4444 100644
--- a/EPAServeur/Services/TransformDTO.cs
+++ b/EPAServeur/Services/TransformDTO.cs
@@ -65,6 +65,8 @@ namespace EPAServeur.Services
Participants = GetParticipantsDTO(ep.Participants, collaborateurDTOs),
CommentairesAssistant = GetCommentaireAssistant(ep.CommentairesAssistant, collaborateurDTOs),
DemandesDelegation = GetDemandeDelegationDTO(ep.DemandeDelegation, collaborateurDTOs),
+ RdvEntretien = GetRDVEntretienDTO(ep.RdvEntretien),
+ PropositionsEntretien = GetRDVEntretienDTOs(ep.PropositionsRDV)
};
}
@@ -338,14 +340,23 @@ namespace EPAServeur.Services
throw new NotImplementedException();
}
- ///
- /// Transformer un objet Ep en objet EpInformationDTO.
- /// La liste de collaborateurs est utilisé pour alimenter la propriété Collaborateur et la propriété Referent de l'objet EpInformationDTO.
- ///
- ///
- ///
- ///
- public EpInformationDTO GetEpInformationDTO(Ep ep, IEnumerable collaborateurs)
+ public TypeEntretienDTO GetEntretienDTO(TypeEntretien typeEntretien)
+ {
+ return new TypeEntretienDTO()
+ {
+ Id = typeEntretien.IdTypeEntretien,
+ Libelle = typeEntretien.Libelle
+ };
+ }
+
+ ///
+ /// Transformer un objet Ep en objet EpInformationDTO.
+ /// La liste de collaborateurs est utilisé pour alimenter la propriété Collaborateur et la propriété Referent de l'objet EpInformationDTO.
+ ///
+ ///
+ ///
+ ///
+ public EpInformationDTO GetEpInformationDTO(Ep ep, IEnumerable collaborateurs)
{
CollaborateurDTO collaborateur;
CollaborateurDTO referent;
@@ -643,7 +654,21 @@ namespace EPAServeur.Services
public RDVEntretienDTO GetRDVEntretienDTO(RdvEntretien rdvEntretien)
{
- throw new NotImplementedException();
+ if (rdvEntretien == null)
+ return null;
+ return new RDVEntretienDTO()
+ {
+ Id = rdvEntretien.IdRdvEntretien,
+ DateEntretien = rdvEntretien.DateEntretien,
+ TypeEntretien = GetEntretienDTO(rdvEntretien.TypeEntretien)
+ };
+ }
+
+ public List GetRDVEntretienDTOs(List rdvEntretiens)
+ {
+ if (rdvEntretiens == null || !rdvEntretiens.Any())
+ return null;
+ return rdvEntretiens.Select(rdv => GetRDVEntretienDTO(rdv)).ToList();
}