diff --git a/EPAServeur/IServices/IReferentEPService.cs b/EPAServeur/IServices/IReferentEPService.cs index aa02997..cec79f6 100644 --- a/EPAServeur/IServices/IReferentEPService.cs +++ b/EPAServeur/IServices/IReferentEPService.cs @@ -10,10 +10,7 @@ namespace EPAServeur.IServices { public interface IReferentEPService { - ReferentEPDTO UpdateCollaborateursReferent(ReferentEPDTO body, Guid? idReferent); Task UpdateCollaborateursReferentAsync(ReferentEPDTO body, Guid? idReferent); - - ReferentEPDTO UpdateReferentCollaborateur(ReferentEPDTO body, Guid? idCollaborateur); Task UpdateReferentCollaborateurAsync(ReferentEPDTO body, Guid? idCollaborateur); } } diff --git a/EPAServeur/Services/ReferentEPService.cs b/EPAServeur/Services/ReferentEPService.cs index fc50043..c0a3fc5 100644 --- a/EPAServeur/Services/ReferentEPService.cs +++ b/EPAServeur/Services/ReferentEPService.cs @@ -26,82 +26,6 @@ namespace EPAServeur.Services } #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 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 public async Task UpdateCollaborateursReferentAsync(ReferentEPDTO body, Guid? idReferent) { @@ -231,10 +155,10 @@ namespace EPAServeur.Services { //Aucune valeur nulle n'a été retrouvée 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 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 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 anciensReferentCollaborateurs = new Dictionary(); - - //La liste des nouveaux collaborateurs du référents qui devront être notifiés de leur nouveau référent - List nouveauxCollaborateurs = new List(); - - 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 #region Methodes privees Async