Implémantation de la récupération du choix du rdventretien et des propositions

develop
Yanaël GRETTE 4 years ago
parent 72153decaf
commit 5af948d0ea
  1. 41
      EPAServeur.Tests/Services/EpDetailsServiceTests.cs
  2. 89
      EPAServeur/Context/DataSeeder.cs
  3. 2
      EPAServeur/DTO/TypeEntretienDTO.cs
  4. 2
      EPAServeur/IServices/ITransformDTO.cs
  5. 2
      EPAServeur/Services/EpDetailsService.cs
  6. 43
      EPAServeur/Services/TransformDTO.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

@ -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
/// <param name="epContext"></param>
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<RdvEntretien>(new[] { rdv1, proposition1, proposition2 });
epContext.Ep.Add(epEnCours2);
@ -170,7 +206,10 @@ namespace EPAServeur.Context
EstPermanente = false
};
epEnCours3.Participants = new List<ParticipationEP>(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<ParticipationEP>(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<RdvEntretien>(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),

@ -32,7 +32,7 @@ namespace IO.Swagger.DTO
/// <value>Id du type de l&#x27;entretien</value>
[Required]
[DataMember(Name="id")]
public int? Id { get; set; }
public long? Id { get; set; }
/// <summary>
/// Texte du type de l&#x27;entretien

@ -80,6 +80,8 @@ namespace EPAServeur.IServices
AugmentationSalaireDTO GetAugmentationSalaireDTO(AugmentationSalaire augmentation);
RDVEntretienDTO GetRDVEntretienDTO(RdvEntretien rdvEntretien);
TypeEntretienDTO GetEntretienDTO(ChoixTypeEntretien choixTypeEntretien);
TypeEntretienDTO GetEntretienDTO(TypeEntretien typeEntretien);
List<RDVEntretienDTO> GetRDVEntretienDTOs(List<RdvEntretien> rdvEntretiens);
DemandeFormationDTO GetDemandeFormationDTOEP(DemandeFormation demandeFormation);
DocumentDTO GetDocumentDTO(Document document);
ObjectifDTO GetObjectifDTO(Objectif objectif);

@ -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();

@ -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();
}
/// <summary>
/// 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.
/// </summary>
/// <param name="ep"></param>
/// <param name="collaborateurs"></param>
/// <returns></returns>
public EpInformationDTO GetEpInformationDTO(Ep ep, IEnumerable<CollaborateurDTO> collaborateurs)
public TypeEntretienDTO GetEntretienDTO(TypeEntretien typeEntretien)
{
return new TypeEntretienDTO()
{
Id = typeEntretien.IdTypeEntretien,
Libelle = typeEntretien.Libelle
};
}
/// <summary>
/// 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.
/// </summary>
/// <param name="ep"></param>
/// <param name="collaborateurs"></param>
/// <returns></returns>
public EpInformationDTO GetEpInformationDTO(Ep ep, IEnumerable<CollaborateurDTO> 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<RDVEntretienDTO> GetRDVEntretienDTOs(List<RdvEntretien> rdvEntretiens)
{
if (rdvEntretiens == null || !rdvEntretiens.Any())
return null;
return rdvEntretiens.Select(rdv => GetRDVEntretienDTO(rdv)).ToList();
}

Loading…
Cancel
Save