Mise à jour du jeu de données et utilisation du service collaborateur du serveur à la place du service collaborateur distant dans le service demande délégation

develop
Yanaël GRETTE 4 years ago
parent 95ed1e83ac
commit f13fcc25b7
  1. 4
      EPAServeur.Tests/Controllers/DemandeDelegationApiTests.cs
  2. 24
      EPAServeur.Tests/Services/DemandeDelegationServiceTests.cs
  3. 21
      EPAServeur/Context/DataSeeder.cs
  4. 2
      EPAServeur/Controllers/DemandesDelegationApi.cs
  5. 35
      EPAServeur/Services/DemandeDelegationService.cs

@ -24,6 +24,7 @@ namespace EPAServeur.Tests.Controllers
private ILogger<DemandesDelegationApiController> logger;
IDemandeDelegationService demandeDelegationService;
private ICollaborateurApi collaborateurApi;
private ICollaborateurService collaborateurService;
#endregion
#region Setup
@ -54,7 +55,8 @@ namespace EPAServeur.Tests.Controllers
}
collaborateurApi = new CollaborateurApi();
demandeDelegationService = new DemandeDelegationService(collaborateurApi, context);
collaborateurService = new CollaborateurService(collaborateurApi, context);
demandeDelegationService = new DemandeDelegationService(collaborateurService, context);
}
#endregion

@ -22,6 +22,7 @@ namespace EPAServeur.Tests.Services
#region variables
private EpContext context;
private ICollaborateurApi collaborateurApi;
private ICollaborateurService collaborateurService;
#endregion
#region Setup
@ -51,6 +52,7 @@ namespace EPAServeur.Tests.Services
entity.State = EntityState.Detached;
}
collaborateurApi = new CollaborateurApi();
collaborateurService = new CollaborateurService(collaborateurApi, context);
}
#endregion
@ -63,7 +65,7 @@ namespace EPAServeur.Tests.Services
[TestCase("17b87130-0e9d-4b78-b0e3-a11e5f70318d", 1)]
public async Task RecupererDemandesDelegation_OK(Guid? idReferent, int count)
{
IDemandeDelegationService demandeDelegationService = new DemandeDelegationService(collaborateurApi, context);
IDemandeDelegationService demandeDelegationService = new DemandeDelegationService(collaborateurService, context);
IEnumerable<DemandeDelegationDTO> demandesDelegation = await demandeDelegationService.RecupererDemandesDelegation(idReferent);
foreach (DemandeDelegationDTO demandeDelegation in demandesDelegation)
{
@ -78,7 +80,7 @@ namespace EPAServeur.Tests.Services
public void RecupererDemandeDelegation_ReferentNotFound()
{
Guid? idReferent = new Guid();
IDemandeDelegationService demandeDelegationService = new DemandeDelegationService(collaborateurApi, context);
IDemandeDelegationService demandeDelegationService = new DemandeDelegationService(collaborateurService, context);
AsyncTestDelegate exception = () => demandeDelegationService.RecupererDemandesDelegation(idReferent);
Assert.ThrowsAsync(typeof(ReferentNotFoundException), exception);
}
@ -91,8 +93,8 @@ namespace EPAServeur.Tests.Services
[TestCase(5)]
public async Task UpdateDemandeDelegation_ReponsePositive(long id)
{
IDemandeDelegationService demandeDelegationService = new DemandeDelegationService(collaborateurApi, context);
DemandeDelegation demandeDelegation = await context.DemandeDelegations.FindAsync(id);
IDemandeDelegationService demandeDelegationService = new DemandeDelegationService(collaborateurService, context);
DemandeDelegation demandeDelegation = await context.DemandeDelegation.FindAsync(id);
long idEp = demandeDelegation.IdEP;
Ep ep = await context.Ep.FindAsync(idEp);
@ -111,7 +113,7 @@ namespace EPAServeur.Tests.Services
}
};
DemandeDelegationDTO reponse = await demandeDelegationService.UpdateDemandeDelegation(id, demandeDTO);
demandeDelegation = await context.DemandeDelegations.FindAsync(id);
demandeDelegation = await context.DemandeDelegation.FindAsync(id);
Assert.IsNull(reponse);
Assert.IsNull(demandeDelegation);
ep = await context.Ep.FindAsync(idEp);
@ -123,8 +125,8 @@ namespace EPAServeur.Tests.Services
[TestCase(6)]
public async Task UpdateDemandeDelegation_ReponseNegative(long id)
{
IDemandeDelegationService demandeDelegationService = new DemandeDelegationService(collaborateurApi, context);
DemandeDelegation demandeDelegation = await context.DemandeDelegations.FindAsync(id);
IDemandeDelegationService demandeDelegationService = new DemandeDelegationService(collaborateurService, context);
DemandeDelegation demandeDelegation = await context.DemandeDelegation.FindAsync(id);
long idEp = demandeDelegation.IdEP;
Ep ep = await context.Ep.FindAsync(idEp);
@ -154,7 +156,7 @@ namespace EPAServeur.Tests.Services
[TestCase(10, EtatDemande.Rejetee, "exemple refus")]
public void UpdateDemandeDelegation_DemandeNonExistante(long id, EtatDemande etatDemande, string raisonRefus)
{
IDemandeDelegationService demandeDelegationService = new DemandeDelegationService(collaborateurApi, context);
IDemandeDelegationService demandeDelegationService = new DemandeDelegationService(collaborateurService, context);
DemandeDelegationDTO demandeDTO = new DemandeDelegationDTO()
{
Id = id,
@ -174,7 +176,7 @@ namespace EPAServeur.Tests.Services
[TestCase(4, 1,EtatDemande.Rejetee, "exemple refus")]
public void UpdateDemandeDelegation_DemandeIncompatible(long id, long idIncompatible, EtatDemande etatDemande, string raisonRefus)
{
IDemandeDelegationService demandeDelegationService = new DemandeDelegationService(collaborateurApi, context);
IDemandeDelegationService demandeDelegationService = new DemandeDelegationService(collaborateurService, context);
DemandeDelegationDTO demandeDTO = new DemandeDelegationDTO()
{
Id = id,
@ -197,8 +199,8 @@ namespace EPAServeur.Tests.Services
[TestCase(7, EtatDemande.Rejetee, "")]
public async Task UpdateDemandeDelegation_DemandeInvalid(long id, EtatDemande etatDemande, string raisonRefus)
{
IDemandeDelegationService demandeDelegationService = new DemandeDelegationService(collaborateurApi, context);
DemandeDelegation demandeDelegation = await context.DemandeDelegations.FindAsync(id);
IDemandeDelegationService demandeDelegationService = new DemandeDelegationService(collaborateurService, context);
DemandeDelegation demandeDelegation = await context.DemandeDelegation.FindAsync(id);
long idEp = demandeDelegation.IdEP;
Ep ep = await context.Ep.FindAsync(idEp);

@ -1683,6 +1683,7 @@ namespace EPAServeur.Context
NumeroEp = 1,
DateCreation = new DateTime(2020, 7, 7),
DatePrevisionnelle = new DateTime(2020, 7, 8),
DateDisponibilite = new DateTime(2020, 6, 8),
Obligatoire = false,
Statut = StatutEp.DatesProposees,
CV = "CV.pdf",
@ -1693,7 +1694,7 @@ namespace EPAServeur.Context
dm1 = new DemandeDelegation()
{
IdDemandeDelegation = 1,
DateDemande = new DateTime(),
DateDemande = DateTime.Now,
Ep = ep21,
IdReferent = new Guid("01ee85ff-d7f3-494b-b1de-26ced8fbfa0d"),
EtatDemande = EtatDemande.EnAttente,
@ -1712,6 +1713,7 @@ namespace EPAServeur.Context
TypeEP = TypeEp.EPA,
NumeroEp = 1,
DateCreation = new DateTime(2020, 7, 7),
DateDisponibilite = new DateTime(2020, 6, 8),
DatePrevisionnelle = new DateTime(2020, 7, 8),
Obligatoire = false,
Statut = StatutEp.DatesProposees,
@ -1723,7 +1725,7 @@ namespace EPAServeur.Context
dm2 = new DemandeDelegation()
{
IdDemandeDelegation = 2,
DateDemande = new DateTime(),
DateDemande = DateTime.Now,
Ep = ep22,
IdReferent = new Guid("01ee85ff-d7f3-494b-b1de-26ced8fbfa0d"),
EtatDemande = EtatDemande.EnAttente,
@ -1743,6 +1745,7 @@ namespace EPAServeur.Context
NumeroEp = 1,
DateCreation = new DateTime(2020, 7, 7),
DatePrevisionnelle = new DateTime(2020, 7, 8),
DateDisponibilite = new DateTime(2020, 6, 8),
Obligatoire = false,
Statut = StatutEp.DatesProposees,
CV = "CV.pdf",
@ -1753,7 +1756,7 @@ namespace EPAServeur.Context
dm3 = new DemandeDelegation()
{
IdDemandeDelegation = 3,
DateDemande = new DateTime(),
DateDemande = DateTime.Now,
Ep = ep23,
IdReferent = new Guid("01ee85ff-d7f3-494b-b1de-26ced8fbfa0d"),
EtatDemande = EtatDemande.EnAttente,
@ -1773,6 +1776,7 @@ namespace EPAServeur.Context
NumeroEp = 1,
DateCreation = new DateTime(2020, 7, 7),
DatePrevisionnelle = new DateTime(2020, 7, 8),
DateDisponibilite = new DateTime(2020, 6, 8),
Obligatoire = false,
Statut = StatutEp.DatesProposees,
CV = "CV.pdf",
@ -1783,7 +1787,7 @@ namespace EPAServeur.Context
dm4 = new DemandeDelegation()
{
IdDemandeDelegation = 4,
DateDemande = new DateTime(),
DateDemande = DateTime.Now,
Ep = ep24,
IdReferent = new Guid("0afd1573-de75-4e5b-bfcb-1985259d8370"),
EtatDemande = EtatDemande.EnAttente,
@ -1803,6 +1807,7 @@ namespace EPAServeur.Context
NumeroEp = 1,
DateCreation = new DateTime(2020, 7, 7),
DatePrevisionnelle = new DateTime(2020, 7, 8),
DateDisponibilite = new DateTime(2020, 6, 8),
Obligatoire = false,
Statut = StatutEp.DatesProposees,
CV = "CV.pdf",
@ -1813,7 +1818,7 @@ namespace EPAServeur.Context
dm5 = new DemandeDelegation()
{
IdDemandeDelegation = 5,
DateDemande = new DateTime(),
DateDemande = DateTime.Now,
Ep = ep25,
IdReferent = new Guid("de98a866-736f-4295-a669-92a8694e2ee3"),
EtatDemande = EtatDemande.EnAttente,
@ -1833,6 +1838,7 @@ namespace EPAServeur.Context
NumeroEp = 1,
DateCreation = new DateTime(2020, 7, 7),
DatePrevisionnelle = new DateTime(2020, 7, 8),
DateDisponibilite = new DateTime(2020, 6, 8),
Obligatoire = false,
Statut = StatutEp.DatesProposees,
CV = "CV.pdf",
@ -1843,7 +1849,7 @@ namespace EPAServeur.Context
dm6 = new DemandeDelegation()
{
IdDemandeDelegation = 6,
DateDemande = new DateTime(),
DateDemande = DateTime.Now,
Ep = ep26,
IdReferent = new Guid("17b87130-0e9d-4b78-b0e3-a11e5f70318d"),
EtatDemande = EtatDemande.EnAttente,
@ -1864,6 +1870,7 @@ namespace EPAServeur.Context
NumeroEp = 1,
DateCreation = new DateTime(2020, 7, 7),
DatePrevisionnelle = new DateTime(2020, 7, 8),
DateDisponibilite = new DateTime(2020, 6, 8),
Obligatoire = false,
Statut = StatutEp.DatesProposees,
CV = "CV.pdf",
@ -1874,7 +1881,7 @@ namespace EPAServeur.Context
dm7 = new DemandeDelegation()
{
IdDemandeDelegation = 7,
DateDemande = new DateTime(),
DateDemande = DateTime.Now,
Ep = ep27,
IdReferent = new Guid("17b87130-0e9d-4b78-b0e3-a11e5f70318d"),
EtatDemande = EtatDemande.Rejetee,

@ -138,7 +138,7 @@ namespace IO.Swagger.Controllers
/// <response code="500">Une erreur est survenue sur le serveur</response>
[HttpPut]
[Route("/api/demandesdelegation/{idDemandeDelegation}")]
[Authorize(AuthenticationSchemes = BearerAuthenticationHandler.SchemeName)]
//[Authorize(AuthenticationSchemes = BearerAuthenticationHandler.SchemeName)]
[ValidateModelState]
[SwaggerOperation("UpdateDemandeDelegation")]
[SwaggerResponse(statusCode: 200, type: typeof(DemandeDelegationDTO), description: "Demande de délégation mise à jour avec succès")]

@ -19,13 +19,15 @@ namespace EPAServeur.Services
#region variables
private readonly EpContext context;
private static ICollaborateurApi collaborateurAPI;
private static ICollaborateurService collaborateurService;
#endregion
#region constructeur
public DemandeDelegationService(ICollaborateurApi _collaborateurApi, EpContext _context)
public DemandeDelegationService(ICollaborateurService _collaborateurService, EpContext _context)
{
context = _context;
collaborateurAPI = _collaborateurApi;
collaborateurService = _collaborateurService;
}
#endregion
@ -33,11 +35,16 @@ namespace EPAServeur.Services
#region services async
public async Task<IEnumerable<DemandeDelegationDTO>> RecupererDemandesDelegation(Guid? idReferent)
{
Collaborateur referent = await collaborateurAPI.ChercherCollabIdAsync(idReferent);
if (referent == null)
CollaborateurDTO referentDTO;
try
{
referentDTO = await collaborateurService.GetCollaborateurByIdAsync(idReferent);
}
catch(CollaborateurNotFoundException)
{
throw new ReferentNotFoundException();
}
CollaborateurDTO referentDTO = GetCollaborateurDTO(referent);
var tasks = from demandeDelegation in context.DemandeDelegation.Include( d => d.Ep)
where demandeDelegation.IdReferent.Equals(idReferent) && demandeDelegation.EtatDemande.Equals(EtatDemande.EnAttente)
@ -67,13 +74,9 @@ namespace EPAServeur.Services
}
return demandeDelegationDTO;
}
#endregion
#region méthodes privées
private async Task<DemandeDelegationDTO> AccepterDemandeDelegation(DemandeDelegationDTO demandeDelegationDTO)
{
@ -103,24 +106,16 @@ namespace EPAServeur.Services
return demandeDelegationDTO;
}
private static CollaborateurDTO GetCollaborateurDTO(Collaborateur collaborateur)
{
return new CollaborateurDTO()
{
Id = collaborateur.Id,
Nom = collaborateur.Nom,
Prenom = collaborateur.Prenom,
};
}
private static async Task<EpInformationDTO> GetEpInformationDTO(Ep ep)
{
return new EpInformationDTO()
{
Id = ep.IdEP,
Collaborateur = GetCollaborateurDTO(await collaborateurAPI.ChercherCollabIdAsync(ep.IdCollaborateur)),
Referent = GetCollaborateurDTO(await collaborateurAPI.ChercherCollabIdAsync(ep.IdReferent)),
Collaborateur = await collaborateurService.GetCollaborateurByIdAsync(ep.IdCollaborateur),
Referent = await collaborateurService.GetCollaborateurByIdAsync(ep.IdReferent),
DatePrevisionnelle = ep.DatePrevisionnelle,
DateDisponibilite = ep.DateDisponibilite,
Statut = ep.Statut,
Type = ep.TypeEP,
Obligatoire = ep.Obligatoire,

Loading…
Cancel
Save