From 3aaa8e8ddb5073cf62ad341da43882559cf3256a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Yana=C3=ABl=20GRETTE?= Date: Fri, 18 Dec 2020 12:36:35 +0100 Subject: [PATCH] =?UTF-8?q?Suppression=20des=20m=C3=A9thodes=20synchrones?= =?UTF-8?q?=20non=20utilis=C3=A9es=20pour=20la=20partie=20collaborateur?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- EPAServeur/IServices/ICollaborateurService.cs | 7 - EPAServeur/Services/CollaborateurService.cs | 231 +----------------- EPAServeur/Services/EngagementService.cs | 2 +- EPAServeur/Services/NoteService.cs | 5 +- 4 files changed, 12 insertions(+), 233 deletions(-) diff --git a/EPAServeur/IServices/ICollaborateurService.cs b/EPAServeur/IServices/ICollaborateurService.cs index 4013eef..11ce2e7 100644 --- a/EPAServeur/IServices/ICollaborateurService.cs +++ b/EPAServeur/IServices/ICollaborateurService.cs @@ -11,19 +11,12 @@ namespace EPAServeur.IServices { public interface ICollaborateurService { - CollaborateurDTO GetCollaborateurById(Guid? id); Task GetCollaborateurByIdAsync(Guid? id); - CollaborateurDTO GetCollaborateurByMail(string mail); Task GetCollaborateurByMailAsync(string mail); - IEnumerable GetCollaborateurs(List roles, List idBUs, bool? asc, int? numPage, int? parPAge, string texte, string tri, DateTime? dateDebut, DateTime? dateFin); Task> GetCollaborateursAsync(List roles, List idBUs, bool? asc, int? numPage, int? parPAge, string texte, string tri, DateTime? dateDebut, DateTime? dateFin); - int GetCollaborateursCount(List roles, List idBUs, string texte, DateTime? dateDebut, DateTime? dateFin); Task GetCollaborateursCountAsync(List roles, List idBUs, string texte, DateTime? dateDebut, DateTime? dateFin); - IEnumerable GetCollaborateursByReferent(Guid? idReferent, bool? asc, int? numPage, int? parPage, string texte, string tri); Task> GetCollaborateursByReferentAsync(Guid? idReferent, bool? asc, int? numPage, int? parPage, string texte, string tri); - int GetCollaborateursCountByReferent(Guid? idReferent, string texte); Task GetCollaborateursCountByReferentAsync(Guid? idReferent, string texte); - IEnumerable GetReferentsPrecedentsEP(Guid? idCollaborateur); Task> GetReferentsPrecedentsEPAsync(Guid? idCollaborateur); diff --git a/EPAServeur/Services/CollaborateurService.cs b/EPAServeur/Services/CollaborateurService.cs index c1770f8..60e8287 100644 --- a/EPAServeur/Services/CollaborateurService.cs +++ b/EPAServeur/Services/CollaborateurService.cs @@ -57,182 +57,6 @@ namespace EPAServeur.Services #endregion - #region Services Sync - /// - /// Récupérer un collaborateur en fonction d'un id - /// - /// Identifiant du collaborateur à renvoyer - /// Le collaborateur corresponant à l'id en paramètre - public CollaborateurDTO GetCollaborateurById(Guid? id) - { - Collaborateur collaborateur = collaborateurApi.ChercherCollabId(id); - if (collaborateur == null) - throw new CollaborateurNotFoundException("Le collaborateur recherché n'a pas été trouvé"); - return GetCollaborateurDTO(collaborateur, true); - } - - /// - /// Récupérer un collaborateur en fonction d'un mail - /// - /// Mail du collaborateur à renvoyer - /// Le collaborateur correspondant au mail en paramètre - public CollaborateurDTO GetCollaborateurByMail(string mail) - { - Collaborateur collaborateur = collaborateurApi.ChercherCollabMail(mail); - if (collaborateur == null) - throw new CollaborateurNotFoundException("Le collaborateur recherché n'a pas été trouvé"); - return GetCollaborateurDTO(collaborateur, true); - } - - /// - /// Récupérer la liste de tous les collaborateurs - /// - /// - /// Liste des rôles auxquels les collaborateurs à récupérer appartiennent - /// Liste des business units auxquelles sont rattachés les collaborateurs à récupérer - /// Précise si la liste est trié dans l'ordre croissant ou décroissant - /// Numéro de la page qui est affiché du côté front - /// Nombre de collaborateurs à renvoyer - /// id de l'agence à laquelle appartient les collaborateurs à récupérer - /// - /// permet de récupérer les collaborateurs dont le nom + prénom ou le prénom + nom contient le texte - /// Choisir l'attribut par lequel est trié la liste - /// Date à partir de laquelle les collaborateurs sont arrivés - /// Date jusqu'à laquelle les collaborateurs sont arrivés - /// Renvoie la liste des collaborateurs en fonction des paramètres - public IEnumerable GetCollaborateurs(List roles, List idBUs, bool? asc, int? numPage, int? parPage, string texte, string tri, DateTime? dateDebut, DateTime? dateFin) - { - - IEnumerable collaborateurs; - IEnumerable collaborateursDTO; - - collaborateurs = collaborateurApi.ChercherCollab(ancienCollaborateur: false, roles: roles, buIds: idBUs); - collaborateursDTO = from c in collaborateurs - select GetCollaborateurDTO(c, true); - - if (parPage.Value < minParPage || parPage.Value > maxParPage) - parPage = defaultParPage; - if (numPage.Value <= 0) - numPage = 1; - - int skip = (numPage.Value - 1) * parPage.Value; - int take = parPage.Value; - if (texte != null) - collaborateursDTO = TriTexte(collaborateursDTO, texte.ToLower()); - - //collaborateursDTO = TriAttribut(collaborateursDTO, tri, asc.Value); - - collaborateursDTO = TriDates(collaborateursDTO, dateDebut, dateFin); - - return collaborateursDTO.Skip(skip).Take(take); - } - - /// - /// Récupérer le nombre de collaborateurs correspondant aux paramètres de la requête - /// - /// - /// Liste des rôles auxquels les collaborateurs à récupérer appartiennent - /// Liste des business units auxquelles sont rattachés les collaborateurs à récupérer - /// permet de récupérer les collaborateurs dont le nom + prénom ou le prénom + nom contient le texte - /// Date à partir de laquelle les collaborateurs sont arrivés - /// Date jusqu'à laquelle les collaborateurs sont arrivés - /// Renvoie la liste des collaborateurs en fonction des paramètres - /// Le nombre de collaborateur - public int GetCollaborateursCount(List roles, List idBUs, string texte, DateTime? dateDebut, DateTime? dateFin) - { - IEnumerable collaborateurs; - IEnumerable collaborateursDTO; - - collaborateurs = collaborateurApi.ChercherCollab(ancienCollaborateur: false, roles: roles, buIds: idBUs); - collaborateursDTO = from c in collaborateurs - select GetCollaborateurDTO(c, false); - - if (texte != null) - collaborateursDTO = TriTexte(collaborateursDTO, texte.ToLower()); - - collaborateursDTO = TriDates(collaborateursDTO, dateDebut, dateFin); - - return collaborateursDTO.Count(); - } - - /// - /// Récupérer les collaborateurs d'un référent - /// - /// id du référent des collaborateurs à récupérer - /// Précise si la liste est trié dans l'ordre croissant ou décroissant - /// Numéro de la page qui est affiché du côté front - /// Nombre de collaborateurs à renvoyer - /// permet de récupérer les collaborateurs dont le nom + prénom ou le prénom + nom contient le texte - /// Choisir l'attribut par lequel est trié la liste - /// Renvoyer les collaborateurs du référent dont l'id est passé en paramètre - public IEnumerable GetCollaborateursByReferent(Guid? idReferent, bool? asc, int? numPage, int? parPage, string texte, string tri) - { - /* - Stopwatch stopwatch = new Stopwatch(); - stopwatch.Start(); - stopwatch.Stop(); - Console.WriteLine("Durée d'exécution numéro 1: {0}", stopwatch.Elapsed.TotalSeconds); - stopwatch.Restart(); - stopwatch.Stop(); - Console.WriteLine("Durée d'exécution numéro 1: {0}", stopwatch.Elapsed.TotalSeconds); - */ - Collaborateur referent = collaborateurApi.ChercherCollabId(idReferent); - if (referent == null) - throw new ReferentNotFoundException("Le référent recherché n'a pas été trouvé"); - - List collaborateursIds = (from referentEP in context.ReferentEP - where referentEP.IdReferent.Value.Equals(idReferent) - select (Guid?)referentEP.IdCollaborateur).ToList(); - IEnumerable collaborateurs = collaborateurApi.ChercherCollab(collabsId: collaborateursIds); - - int skip = (numPage.Value - 1) * parPage.Value; - int take = parPage.Value; - IEnumerable collaborateursDTO = from c in collaborateurs - select GetCollaborateurDTO(c, false); - if (texte != null) - collaborateursDTO = TriTexte(collaborateursDTO, texte.ToLower()); - collaborateursDTO = TriAttribut(collaborateursDTO, tri, asc.Value); - return collaborateursDTO.Skip(skip).Take(take); - } - - /// - /// Récupérer le nombre de collaborateurs d'un référent en fonction des paramètres - /// - /// id du référent des collaborateurs à récupérer - /// permet de récupérer les collaborateurs dont le nom + prénom ou le prénom + nom contient le texte - /// Renvoyer le nombre collaborateurs du référent en fonction des paramètres - public int GetCollaborateursCountByReferent(Guid? idReferent, string texte) - { - Collaborateur referent = collaborateurApi.ChercherCollabId(idReferent); - if (referent == null) - throw new ReferentNotFoundException("Le référent recherché n'a pas été trouvé"); - - List collaborateursIds = (from referentEP in context.ReferentEP - where referentEP.IdReferent.Value.Equals(idReferent) - select (Guid?)referentEP.IdCollaborateur).ToList(); - IEnumerable collaborateurs = collaborateurApi.ChercherCollab(collabsId: collaborateursIds); - - IEnumerable collaborateursDTO = from c in collaborateurs - select GetCollaborateurDTO(c, false); - if (texte != null) - collaborateursDTO = TriTexte(collaborateursDTO, texte.ToLower()); - return collaborateursDTO.Count(); - } - - /// - /// Récupérer la liste référents ayant fait passer des EP au collaborateur - /// - /// id du collaborateur concerné - /// Liste des référents - public IEnumerable GetReferentsPrecedentsEP(Guid? idCollaborateur) - { - throw new NotImplementedException(); - } - - - #endregion - - #region Services Async /// /// Récupérer un collaborateur en fonction d'un id de manière asynchrone @@ -283,8 +107,11 @@ namespace EPAServeur.Services IEnumerable collaborateursDTO; collaborateurs = await collaborateurApi.ChercherCollabAsync(ancienCollaborateur: false, roles: roles, buIds: idBUs); - collaborateursDTO = (from c in collaborateurs - select GetCollaborateurDTO(c, false)); + /*collaborateursDTO = (from c in collaborateurs + select GetCollaborateurDTO(c, false));*/ + + var task = collaborateurs.Select(c => GetCollaborateurDTOAsync(c, true)); + collaborateursDTO = await Task.WhenAll(task); if (parPage.Value < minParPage || parPage.Value > maxParPage) parPage = defaultParPage; @@ -379,10 +206,7 @@ namespace EPAServeur.Services where r.IdReferent.Value.Equals(idReferent) select (Guid?)r.IdCollaborateur).ToList(); IEnumerable collaborateurs = await collaborateurApi.ChercherCollabAsync(collabsId: collaborateursIds); - /*IEnumerable collaborateursDTO = (from c in collaborateurs - where (c.Nom + " " + c.Prenom).ToLower().Contains(texte) || (c.Prenom + " " + c.Nom).ToLower().Contains(texte) - select GetCollaborateurDTO(c)).Skip(skip).Take(take); - */ + var tasks = collaborateurs.Select(c => GetCollaborateurDTOAsync(c, false)); IEnumerable collaborateursDTO = await Task.WhenAll(tasks); @@ -509,29 +333,6 @@ namespace EPAServeur.Services return businessUnitDTO; } - /// - /// Transforme un collaborateur en collaborateurDTO - /// - /// collaborateur à transformer en collaborateurDTO - /// Indiquer si le référent du collaborateur doit être récupéré ou non - /// Renvoie la transformation DTO du collaborateur - private CollaborateurDTO GetCollaborateurDTO(Collaborateur collaborateur, bool chercherReferent) - { - CollaborateurDTO collaborateurDTO = new CollaborateurDTO() - { - Id = collaborateur.Id, - Prenom = collaborateur.Prenom, - Nom = collaborateur.Nom, - MailApside = collaborateur.MailApside, - DateArrivee = collaborateur.DateArrivee, - - }; - collaborateurDTO.BusinessUnit = GetBusinessUnitDTO(collaborateur.BusinessUnit); - //Si le référent du collaborateur doit être récupérer en même temps - if(chercherReferent) - collaborateurDTO.Referent = GetReferent(collaborateurDTO); - return collaborateurDTO; - } /// /// Transforme un collaborateur en collaborateurDTO de manière asynchrone @@ -557,23 +358,7 @@ namespace EPAServeur.Services return collaborateurDTO; } - /// - /// Récupérer le référent EP d'un collaborateur si il existe - /// - /// Le collaborateur dont on cherche le référent EP - /// Le référent EP du collaborateur - private CollaborateurDTO GetReferent(CollaborateurDTO collaborateur) - { - ReferentEP referentEP = context.ReferentEP.Find(collaborateur.Id); - //vérifier que le collaorateur a un référent EP - if (referentEP == null || referentEP.IdReferent == null || !referentEP.IdReferent.HasValue || referentEP.IdReferent.Value == null) - return null; - Collaborateur referent = collaborateurApi.ChercherCollabId(referentEP.IdReferent); - if (referent == null) - return null; - //throw new ReferentNotFoundException("Le référent EP recherché n'a pas été trouvé"); - return GetCollaborateurDTO(referent, false); - } + /// /// Récupérer le référent EP d'un collaborateur de manière asynchrone si il existe @@ -589,7 +374,7 @@ namespace EPAServeur.Services Collaborateur referent = await collaborateurApi.ChercherCollabIdAsync(referentEP.IdReferent); if (referent == null) return null; - return GetCollaborateurDTO(referent, false); + return await GetCollaborateurDTOAsync(referent, false); } #endregion } diff --git a/EPAServeur/Services/EngagementService.cs b/EPAServeur/Services/EngagementService.cs index 867c56e..b5f6a69 100644 --- a/EPAServeur/Services/EngagementService.cs +++ b/EPAServeur/Services/EngagementService.cs @@ -337,7 +337,7 @@ namespace EPAServeur.Services Statut = ep.Statut, DatePrevisionnelle = ep.DatePrevisionnelle, Obligatoire = ep.Obligatoire, - Collaborateur = collaborateurService.GetCollaborateurById(ep.IdCollaborateur), + //Collaborateur = collaborateurService.GetCollaborateurById(ep.IdCollaborateur), //Referent = referentService.GetReferentById(ep.IdReferent) //Ajouter la date de disponibilité }; diff --git a/EPAServeur/Services/NoteService.cs b/EPAServeur/Services/NoteService.cs index 43cae4f..40b0bbb 100644 --- a/EPAServeur/Services/NoteService.cs +++ b/EPAServeur/Services/NoteService.cs @@ -463,9 +463,10 @@ namespace EPAServeur.Services /// Note transformer en DetailsNoteDTO private DetailsNoteDTO NoteToDetailSDTO(Note note) { - CollaborateurDTO collaborateur = collaborateurService.GetCollaborateurById(note.IdCollaborateur); + /*CollaborateurDTO collaborateur = collaborateurService.GetCollaborateurById(note.IdCollaborateur); if (collaborateur == null) throw new CollaborateurNotFoundException("Il est impossible de récupérer une note dont le collaborateur n'existe plus"); + */ DetailsNoteDTO details = new DetailsNoteDTO() { Id = note.IdNote, @@ -474,7 +475,7 @@ namespace EPAServeur.Services Titre = note.Titre, Texte = note.Texte, IdAuteur = note.IdAuteur, - Collaborateur = collaborateur, + Collaborateur = new CollaborateurDTO(), }; return details; }