Suppression des méthodes synchrones non utilisées pour la partie ReferentEP

develop
Yanaël GRETTE 4 years ago
parent 3aaa8e8ddb
commit 5392c3f50f
  1. 3
      EPAServeur/IServices/IReferentEPService.cs
  2. 133
      EPAServeur/Services/ReferentEPService.cs

@ -10,10 +10,7 @@ namespace EPAServeur.IServices
{ {
public interface IReferentEPService public interface IReferentEPService
{ {
ReferentEPDTO UpdateCollaborateursReferent(ReferentEPDTO body, Guid? idReferent);
Task<ReferentEPDTO> UpdateCollaborateursReferentAsync(ReferentEPDTO body, Guid? idReferent); Task<ReferentEPDTO> UpdateCollaborateursReferentAsync(ReferentEPDTO body, Guid? idReferent);
ReferentEPDTO UpdateReferentCollaborateur(ReferentEPDTO body, Guid? idCollaborateur);
Task<ReferentEPDTO> UpdateReferentCollaborateurAsync(ReferentEPDTO body, Guid? idCollaborateur); Task<ReferentEPDTO> UpdateReferentCollaborateurAsync(ReferentEPDTO body, Guid? idCollaborateur);
} }
} }

@ -26,82 +26,6 @@ namespace EPAServeur.Services
} }
#endregion #endregion
#region Services Sync
public ReferentEPDTO UpdateCollaborateursReferent(ReferentEPDTO body, Guid? idReferent)
{
//Vérifier que l'id du référent et l'id référent dans l'objet body est le même
CheckReferentId(idReferent, body);
Collaborateur referent = collaborateurApi.ChercherCollabId(idReferent);
//Vérifier que le référent est valide
CheckReferentValide(referent);
IEnumerable<Collaborateur> collaborateurs = collaborateurApi.ChercherCollab(body.IdsCollaborateur);
//Vérifier que la liste des collaborateurs est valide
CheckListesCollaborateurs(collaborateurs);
//Si il manque un collaborateur, c'est qu'il n'a pas été trouvé
if (collaborateurs.Count() < body.IdsCollaborateur.Count)
throw new CollaborateurNotFoundException("Un collaborateur n'a pas pu être récupéré");
//Si on se retrouve avec plus de collaborateur que demandé
if (collaborateurs.Count() > body.IdsCollaborateur.Count)
throw new ApiException(415, "Une erreur est survenu lors de la récupération des données avec le serveur");
this.SetReferentEP(body.IdsCollaborateur, idReferent);
return body;
}
public ReferentEPDTO UpdateReferentCollaborateur(ReferentEPDTO body, Guid? idCollaborateur)
{
CheckCollaborateurId(idCollaborateur, body);
Collaborateur referent = collaborateurApi.ChercherCollabId(body.IdReferent);
CheckReferentValide(referent);
Collaborateur collaborateur = collaborateurApi.ChercherCollabId(idCollaborateur);
CheckCollaborateurValide(collaborateur);
ReferentEP referentEP = context.ReferentEP.Find(idCollaborateur);
if(referentEP == null)
{
referentEP = new ReferentEP
{
IdCollaborateur = idCollaborateur.Value
};
}
//Si le nouveau référent est déjà le référent actuel du collaborateur, il n'est pas nécessaire de faire quoique ce soit
if (referentEP.IdReferent != null && referentEP.IdReferent.HasValue && referentEP.IdReferent.Value.Equals(body.IdReferent.Value))
return body;
Guid? ancienReferent = referentEP.IdReferent; //Si non null, il faudra notifier le référent qu'il n'est plus le référent EP du collaborateur
referentEP.IdReferent = body.IdReferent;
context.SaveChanges();
if (ancienReferent != null && ancienReferent.HasValue)
{
//notifier l'ancien référent
}
//TODO : Notifier le référent et le collaborateur
return body;
}
#endregion
#region Service Async #region Service Async
public async Task<ReferentEPDTO> UpdateCollaborateursReferentAsync(ReferentEPDTO body, Guid? idReferent) public async Task<ReferentEPDTO> UpdateCollaborateursReferentAsync(ReferentEPDTO body, Guid? idReferent)
{ {
@ -231,10 +155,10 @@ namespace EPAServeur.Services
{ {
//Aucune valeur nulle n'a été retrouvée //Aucune valeur nulle n'a été retrouvée
if (collaborateur == null) if (collaborateur == null)
throw new CollaborateurNotFoundException("Le collaborateur n'a pas été retrouvé"); throw new CollaborateurNotFoundException("Un collaborateur n'a pas été retrouvé");
//Le collaborateur est toujours présent dans l'entreprise //Le collaborateur est toujours présent dans l'entreprise
if (collaborateur.DateDepart.HasValue) if (collaborateur.DateDepart.HasValue)
throw new CollaborateurPartiException("Le collaborateur récupéré ne travaille plus pour l'entreprise"); throw new CollaborateurPartiException("Un collaborateur récupéré ne travaille plus pour l'entreprise");
} }
@ -246,59 +170,6 @@ namespace EPAServeur.Services
} }
} }
private void SetReferentEP(IEnumerable<Guid?> idsCollaborateur, Guid? idReferent) {
//Garder le lien entre l'anciens référent et le collaborateur pour notifier les anciens référents qu'ils ne sont plus référents
Dictionary<Guid?, Guid?> anciensReferentCollaborateurs = new Dictionary<Guid?, Guid?>();
//La liste des nouveaux collaborateurs du référents qui devront être notifiés de leur nouveau référent
List<Guid?> nouveauxCollaborateurs = new List<Guid?>();
foreach(Guid? idCollaborateur in idsCollaborateur) {
ReferentEP referentEP = context.ReferentEP.Find(idCollaborateur);
//Eviter d'avoir un référent qui devient son propre référent
if(idCollaborateur.Value.Equals(idReferent.Value))
continue;
//Le collaborateur n'a jamais eu de référent donc on lui crée un référentEP et il en sera simplement notifié
if( referentEP == null) {
referentEP = new ReferentEP
{
IdReferent = idReferent,
IdCollaborateur = idCollaborateur.Value
};
context.ReferentEP.Add(referentEP);
}
else{
//Si le collaborateur a actuellement un référent
if(referentEP.IdReferent != null && referentEP.IdReferent.HasValue) {
//Si le nouveau référent est déjà le référent actuel du collaborateur, il n'y a rien à faire
if (referentEP.IdReferent.Value.Equals(referentEP.IdReferent.Value))
continue;
//Sauvegarder l'ancien référent et le collaborateur suite au changement
anciensReferentCollaborateurs.Add(idReferent, idCollaborateur);
}
referentEP.IdReferent = idReferent;
}
context.SaveChanges();
//ajouter le nouveau collaborateur à la liste des collaborateurs à notifier
nouveauxCollaborateurs.Add(idCollaborateur);
}
//TODO: notifier chaque collaborateur de leur nouveau référent
//TODO: notifier le référent suite à ses nouveaux collaborateurs
//TODO: notifer les anciens référents qu'ils ne sont plus référents des leurs collaborateurs
}
#endregion #endregion
#region Methodes privees Async #region Methodes privees Async

Loading…
Cancel
Save