Implémentation de la récupération des choix de type d'entretien

develop
Yanaël GRETTE 4 years ago
parent 6197d6d0a6
commit b59e2d9617
  1. 24
      EPAServeur.Tests/Services/EpDetailsServiceTests.cs
  2. 58
      EPAServeur/Context/DataSeeder.cs
  3. 4
      EPAServeur/Context/EpContext.cs
  4. 6
      EPAServeur/DTO/EpDTO.cs
  5. 5
      EPAServeur/IServices/ITransformDTO.cs
  6. 4
      EPAServeur/Models/EP/ChoixTypeEntretien.cs
  7. 1
      EPAServeur/Services/EpDetailsService.cs
  8. 20
      EPAServeur/Services/TransformDTO.cs

@ -205,6 +205,28 @@ namespace EPAServeur.Tests.Services
#endregion
#region Récupérer EP avec choix type entretien
[TestCase(1, 0)]
[TestCase(2, 4)]
[TestCase(4, 1)]
[TestCase(5, 2)]
[TestCase(10, 0)]
[TestCase(12, 0)]
public async Task GetEp_GetChoixTypeEntretien(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.ChoixTypeEntretien);
}
else
{
Assert.IsNotNull(epDTO.ChoixTypeEntretien);
Assert.AreEqual(epDTO.ChoixTypeEntretien.Count, count);
Assert.Less(epDTO.Statut, StatutEp.Effectue);
}
}
#endregion
@ -217,7 +239,7 @@ namespace EPAServeur.Tests.Services
#region
#region Demande EPI
#endregion
#region

@ -98,6 +98,8 @@ namespace EPAServeur.Context
RdvEntretien proposition1, proposition2, proposition3;
ChoixTypeEntretien choix1, choix2, choix3, choix4, choix5, choix6, choix7;
//Ep en cours
Ep epEnCours1, epEnCours2, epEnCours3, epEnCours4, epEnCours5, epEnCours6, epEnCours7, epEnCours8, epEnCours9;
@ -177,6 +179,34 @@ namespace EPAServeur.Context
TypeEntretien = typeVisio
};
epEnCours2.PropositionsRDV = new List<RdvEntretien>(new[] { rdv1, proposition1, proposition2 });
choix1 = new ChoixTypeEntretien()
{
Ep = epEnCours2,
Ordre = 0,
TypeEntretien = typeClient
};
choix2 = new ChoixTypeEntretien()
{
Ep = epEnCours2,
Ordre = 1,
TypeEntretien = typeSite
};
choix3 = new ChoixTypeEntretien()
{
Ep = epEnCours2,
Ordre = 2,
TypeEntretien = typeVisio
};
choix4 = new ChoixTypeEntretien()
{
Ep = epEnCours2,
Ordre = 3,
TypeEntretien = typeTelephone
};
epEnCours2.ChoixTypeEntretien = new List<ChoixTypeEntretien>() { choix1, choix2, choix3, choix4 };
epContext.Ep.Add(epEnCours2);
@ -233,6 +263,16 @@ namespace EPAServeur.Context
RaisonDemande = "Raison quelconque 2"
};
epEnCours4.DemandeDelegation = dm2;
choix5 = new ChoixTypeEntretien()
{
Ep = epEnCours4,
Ordre = 0,
TypeEntretien = typeSite
};
epEnCours4.ChoixTypeEntretien = new List<ChoixTypeEntretien>() { choix5 };
epContext.Ep.Add(epEnCours4);
epEnCours5 = new Ep()
@ -271,7 +311,7 @@ namespace EPAServeur.Context
DateEntretien = new DateTime(),
EpProposition = epEnCours5,
IdRdvEntretien = 5,
TypeEntretien = typeSite
TypeEntretien = typeVisio
};
@ -279,6 +319,22 @@ namespace EPAServeur.Context
epEnCours5.PropositionsRDV = new List<RdvEntretien>(new[] { rdv2, proposition3 });
epEnCours5.RdvEntretien = rdv2;
choix6 = new ChoixTypeEntretien()
{
Ep = epEnCours5,
Ordre = 0,
TypeEntretien = typeSite
};
choix7 = new ChoixTypeEntretien()
{
Ep = epEnCours5,
Ordre = 1,
TypeEntretien = typeVisio
};
epEnCours5.ChoixTypeEntretien = new List<ChoixTypeEntretien>() { choix6, choix7 };
epContext.Ep.Add(epEnCours5);
epEnCours6 = new Ep()

@ -107,6 +107,7 @@ namespace EPAServeur.Context
{
entity.HasKey(e => e.IdRdvEntretien);
entity.Property(e => e.IdRdvEntretien).ValueGeneratedOnAdd();
entity.HasOne(e => e.TypeEntretien).WithMany(t => t.RdvEntretiens);
});
modelBuilder.Entity<ReferentEP>(entity =>
@ -116,7 +117,7 @@ namespace EPAServeur.Context
modelBuilder.Entity<ChoixTypeEntretien>(entity =>
{
entity.HasKey(e => e.Ordre);
entity.HasKey(e => e.IdChoixTypeEntretien);
});
@ -141,6 +142,7 @@ namespace EPAServeur.Context
{
entity.HasKey(e => e.IdTypeEntretien);
entity.HasIndex(e => e.Libelle).IsUnique();
entity.HasMany<ChoixTypeEntretien>(e => e.ChoixTypeEntretien).WithOne(c => c.TypeEntretien);
});
modelBuilder.Entity<CommentaireAssistant>(entity =>

@ -3,7 +3,7 @@
*
* API qui sra utilisée afin de faire communiquer le client et le serveur ainsi que le serveur et la boîte noire.
*
* OpenAPI spec version: 1.3.6
* OpenAPI spec version: 1.3.7
*
* Generated by: https://github.com/swagger-api/swagger-codegen.git
*/
@ -110,7 +110,7 @@ namespace IO.Swagger.DTO
/// Gets or Sets ChoixTypeEntretien
/// </summary>
[DataMember(Name = "choixTypeEntretien")]
public TypeEntretienDTO ChoixTypeEntretien { get; set; }
public List<TypeEntretienDTO> ChoixTypeEntretien { get; set; }
/// <summary>
/// Indique si oui ou non l&#x27;EP doit obligatoirement être effectué
@ -321,7 +321,7 @@ namespace IO.Swagger.DTO
(
ChoixTypeEntretien == other.ChoixTypeEntretien ||
ChoixTypeEntretien != null &&
ChoixTypeEntretien.Equals(other.ChoixTypeEntretien)
ChoixTypeEntretien.SequenceEqual(other.ChoixTypeEntretien)
) &&
(
Obligatoire == other.Obligatoire ||

@ -79,10 +79,9 @@ namespace EPAServeur.IServices
DemandeEPIDTO GetDemandeEPIDTO(DemandeEPI demande, IEnumerable<CollaborateurDTO> collaborateurDTOs);
AugmentationSalaireDTO GetAugmentationSalaireDTO(AugmentationSalaire augmentation);
RDVEntretienDTO GetRDVEntretienDTO(RdvEntretien rdvEntretien);
TypeEntretienDTO GetEntretienDTO(ChoixTypeEntretien choixTypeEntretien);
TypeEntretienDTO GetEntretienDTO(TypeEntretien typeEntretien);
TypeEntretienDTO GetTypeEntretienDTO(TypeEntretien typeEntretien);
List<RDVEntretienDTO> GetRDVEntretienDTOs(List<RdvEntretien> rdvEntretiens);
DemandeFormationDTO GetDemandeFormationDTOEP(DemandeFormation demandeFormation);
List<TypeEntretienDTO> GetTypeEntretienDTOs(List<ChoixTypeEntretien> choixTypeEntretiens);
DocumentDTO GetDocumentDTO(Document document);
ObjectifDTO GetObjectifDTO(Objectif objectif);
ObjectifPrecedentDTO GetObjectifPrecedentDTO(ObjectifPrecedent objectifPrecedent);

@ -10,6 +10,10 @@ namespace EPAServeur.Models.EP
/// </summary>
public class ChoixTypeEntretien
{
/// <summary>
/// Id
/// </summary>
public long IdChoixTypeEntretien { get; internal set; }
/// <summary>
/// Numéro d’ordre de préférence
/// </summary>

@ -33,6 +33,7 @@ namespace EPAServeur.Services
.Include(ep => ep.DemandeDelegation)
.Include(ep => ep.RdvEntretien).ThenInclude(rdv => rdv.TypeEntretien)
.Include(ep => ep.PropositionsRDV).ThenInclude(rdv => rdv.TypeEntretien)
.Include(ep => ep.ChoixTypeEntretien).ThenInclude( c => c.TypeEntretien)
.FirstOrDefaultAsync(ep => ep.IdEP.Equals(id));
if (ep == null)
throw new EpNotFoundException();

@ -66,7 +66,8 @@ namespace EPAServeur.Services
CommentairesAssistant = GetCommentaireAssistant(ep.CommentairesAssistant, collaborateurDTOs),
DemandesDelegation = GetDemandeDelegationDTO(ep.DemandeDelegation, collaborateurDTOs),
RdvEntretien = GetRDVEntretienDTO(ep.RdvEntretien),
PropositionsEntretien = GetRDVEntretienDTOs(ep.PropositionsRDV)
PropositionsEntretien = GetRDVEntretienDTOs(ep.PropositionsRDV),
ChoixTypeEntretien = GetTypeEntretienDTOs(ep.ChoixTypeEntretien)
};
}
@ -336,12 +337,7 @@ namespace EPAServeur.Services
return engagements.Select(engagment => GetEngagementDTO(engagment, null, false)).ToList();
}
public TypeEntretienDTO GetEntretienDTO(ChoixTypeEntretien choixTypeEntretien)
{
throw new NotImplementedException();
}
public TypeEntretienDTO GetEntretienDTO(TypeEntretien typeEntretien)
public TypeEntretienDTO GetTypeEntretienDTO(TypeEntretien typeEntretien)
{
return new TypeEntretienDTO()
{
@ -661,7 +657,7 @@ namespace EPAServeur.Services
{
Id = rdvEntretien.IdRdvEntretien,
DateEntretien = rdvEntretien.DateEntretien,
TypeEntretien = GetEntretienDTO(rdvEntretien.TypeEntretien)
TypeEntretien = GetTypeEntretienDTO(rdvEntretien.TypeEntretien)
};
}
@ -752,6 +748,14 @@ namespace EPAServeur.Services
};
return statutFormationDTO;
}
public List<TypeEntretienDTO> GetTypeEntretienDTOs(List<ChoixTypeEntretien> choixTypeEntretiens)
{
if (choixTypeEntretiens == null || !choixTypeEntretiens.Any())
return null;
return choixTypeEntretiens.OrderBy(c => c.Ordre).Select(c => GetTypeEntretienDTO(c.TypeEntretien)).ToList();
}
/// <summary>

Loading…
Cancel
Save