Récupération des engagements avec les détails EP

develop
Yanaël GRETTE 4 years ago
parent 8f3aed1f24
commit daab188c86
  1. 30
      EPAServeur.Tests/Services/EpDetailsServiceTests.cs
  2. 46
      EPAServeur/Context/DataSeeder.cs
  3. 3
      EPAServeur/IServices/ITransformDTO.cs
  4. 7
      EPAServeur/Services/EpDetailsService.cs
  5. 18
      EPAServeur/Services/TransformDTO.cs

@ -1,4 +1,5 @@
using EPAServeur.Context;
using EPAServeur.Exceptions;
using EPAServeur.IServices;
using EPAServeur.Models.EP;
using EPAServeur.Services;
@ -72,9 +73,38 @@ namespace EPAServeur.Tests.Services
#endregion
#region Récupérer EP exceptions
[TestCase(-999)]
[TestCase(20)]
[TestCase(100)]
[TestCase(0)]
public void GetEPById_NotFoundException(long idEp)
{
IEpDetailsService epDetailsService = new EpDetailsService(context, transformDTO, collaborateurService);
AsyncTestDelegate exception = () => epDetailsService.GetEp(idEp);
Assert.ThrowsAsync(typeof(EpNotFoundException), exception);
}
#endregion
#region Récupérer EP avec Engagements
[TestCase(6, 3)]
[TestCase(8, 0)]
[TestCase(10, 1)]
public async Task GetEPById_GetEngagement(long idEP, int count)
{
IEpDetailsService epDetailsService = new EpDetailsService(context, transformDTO, collaborateurService);
EpDTO epDTO = await epDetailsService.GetEp(idEP);
if(count == 0)
{
Assert.IsNull(epDTO.Engagements);
}
else
{
Assert.IsNotNull(epDTO.Engagements);
Assert.AreEqual(count, epDTO.Engagements.Count);
}
}
#endregion
#region Récupérer EP avec participant EP

@ -84,6 +84,7 @@ namespace EPAServeur.Context
/// <param name="epContext"></param>
public static void AddEp(EpContext epContext)
{
Engagement eg1, eg2, eg3, eg4;
//Ep en cours
Ep epEnCours1, epEnCours2, epEnCours3, epEnCours4, epEnCours5, epEnCours6, epEnCours7, epEnCours8, epEnCours9;
//Tours
@ -171,6 +172,37 @@ namespace EPAServeur.Context
IdCollaborateur = new Guid("de98a866-736f-4295-a669-92a8694e2ee3"),
Obligatoire = false,
};
eg1 = new Engagement()
{
Action = "action",
DateLimite = DateTime.Now,
Dispositif = "dispositif",
EtatEngagement = EtatEngagement.EnAttente,
Modalite = "modalite",
Ep = epEnCours6
};
eg2 = new Engagement()
{
Action = "action",
DateLimite = DateTime.Now,
Dispositif = "dispositif",
EtatEngagement = EtatEngagement.EnAttente,
Modalite = "modalite",
Ep = epEnCours6
};
eg3 = new Engagement()
{
Action = "action",
DateLimite = DateTime.Now,
Dispositif = "dispositif",
EtatEngagement = EtatEngagement.EnAttente,
Modalite = "modalite",
Ep = epEnCours6
};
epEnCours6.Engagements = new List<Engagement>();
epEnCours6.Engagements.Add(eg1);
epEnCours6.Engagements.Add(eg2);
epEnCours6.Engagements.Add(eg3);
epContext.Ep.Add(epEnCours6);
epEnCours7 = new Ep()
@ -219,7 +251,7 @@ namespace EPAServeur.Context
//Ep signés
Ep epSigne1, epSigne2, epSigne3, epSigne4, epSigne5, epSigne6, epSigne7, epSigne8, epSigne9;//, epSigne10, epSigne11, epSigne12, epSigne13, epSigne14;
Ep epSigne1, epSigne2, epSigne3, epSigne4, epSigne5, epSigne6, epSigne7, epSigne8, epSigne9;
epSigne1 = new Ep()
{
DateDisponibilite = new DateTime(2017, 1, 15),
@ -232,6 +264,17 @@ namespace EPAServeur.Context
IdCollaborateur = new Guid("301ba7f3-095e-4912-8998-a7c942dc5f23"),
Obligatoire = true,
};
eg4 = new Engagement()
{
Action = "action",
DateLimite = DateTime.Now,
Dispositif = "dispositif",
EtatEngagement = EtatEngagement.EnAttente,
Modalite = "modalite",
Ep = epSigne1
};
epSigne1.Engagements = new List<Engagement>();
epSigne1.Engagements.Add(eg4);
epContext.Ep.Add(epSigne1);
epSigne2 = new Ep()
@ -303,6 +346,7 @@ namespace EPAServeur.Context
IdCollaborateur = new Guid("a0f40e2a-cc03-4032-a627-5389e1281c64"),
Obligatoire = false,
};
epContext.Ep.Add(epSigne6);
epSigne7 = new Ep()

@ -26,7 +26,7 @@ namespace EPAServeur.IServices
#region Engagement
// Engagement
EngagementDTO GetEngagementDTO(Engagement engagement, IEnumerable<CollaborateurDTO> collaborateurDTOs);
EngagementDTO GetEngagementDTO(Engagement engagement, IEnumerable<CollaborateurDTO> collaborateurDTOs, bool recupEpInformation = true);
Engagement SetReponseEngagement(Engagement engagement, EngagementDTO engagementDTO);
#endregion
@ -72,6 +72,7 @@ namespace EPAServeur.IServices
// Récupération DetailsEP
EpDTO EpToEpDetails(Ep ep, IEnumerable<CollaborateurDTO> collaborateurDTOs);
List<EngagementDTO> GetEngagementDTOs(Ep ep);
DemandeEPIDTO GetDemandeEPIDTO(DemandeEPI demande, IEnumerable<CollaborateurDTO> collaborateurDTOs);
AugmentationSalaireDTO GetAugmentationSalaireDTO(AugmentationSalaire augmentation);
DemandeDelegationDTO GetDemandeDelegationDTO(DemandeDelegation demandeDelegation, IEnumerable<CollaborateurDTO> collaborateurDTOs);

@ -4,6 +4,7 @@ using EPAServeur.IServices;
using EPAServeur.Models.EP;
using IO.Swagger.ApiCollaborateur;
using IO.Swagger.DTO;
using Microsoft.EntityFrameworkCore;
using System;
using System.Collections.Generic;
using System.Linq;
@ -26,14 +27,18 @@ namespace EPAServeur.Services
public async Task<EpDTO> GetEp(long id)
{
Ep ep = await context.Ep.FindAsync(id);
Ep ep = await context.Ep.Include(ep => ep.Engagements).FirstOrDefaultAsync(ep => ep.IdEP.Equals(id));
if (ep == null)
throw new EpNotFoundException();
//ajouter tous les guids liés à l'EP et aux attributs de l'EP
List<Guid?> guids = new List<Guid?>();
guids.Add(ep.IdCollaborateur);
if (ep.IdReferent.HasValue)
guids.Add(ep.IdCollaborateur);
IEnumerable<CollaborateurDTO> collaborateurDTOs = await collaborateurService.GetCollaborateurDTOsAsync(guids);
EpDTO epDTO = transformDTO.EpToEpDetails(ep, collaborateurDTOs);

@ -60,7 +60,8 @@ namespace EPAServeur.Services
Obligatoire = ep.Obligatoire,
Statut = ep.Statut,
Type = ep.TypeEP,
Cv = ep.CV
Cv = ep.CV,
Engagements = GetEngagementDTOs(ep)
};
}
@ -274,9 +275,9 @@ namespace EPAServeur.Services
/// <param name="engagement"></param>
/// <param name="collaborateurDTOs"></param>
/// <returns></returns>
public EngagementDTO GetEngagementDTO(Engagement engagement, IEnumerable<CollaborateurDTO> collaborateurDTOs)
public EngagementDTO GetEngagementDTO(Engagement engagement, IEnumerable<CollaborateurDTO> collaborateurDTOs, bool recupEpInformation = true)
{
if (engagement == null || collaborateurDTOs == null || !collaborateurDTOs.Any())
if ( engagement == null || recupEpInformation && ( collaborateurDTOs == null || !collaborateurDTOs.Any()))
return null;
EngagementDTO engagementDTO = new EngagementDTO()
@ -288,12 +289,19 @@ namespace EPAServeur.Services
Modalite = engagement.Modalite,
RaisonNonRealisable = engagement.RaisonNonRealisable,
EtatEngagement = engagement.EtatEngagement,
Ep = GetEpInformationDTO(engagement.Ep, collaborateurDTOs)
};
if (recupEpInformation)
engagementDTO.Ep = GetEpInformationDTO(engagement.Ep, collaborateurDTOs);
return engagementDTO;
}
public List<EngagementDTO> GetEngagementDTOs(Ep ep)
{
if (ep.Engagements == null || ep.Engagements.Count == 0)
return null;
return ep.Engagements.Select(engagment => GetEngagementDTO(engagment, null, false)).ToList();
}
public TypeEntretienDTO GetEntretienDTO(ChoixTypeEntretien choixTypeEntretien)
{
throw new NotImplementedException();

Loading…
Cancel
Save