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

develop
Yanaël GRETTE 4 years ago
parent 316a978e57
commit 3aaa8e8ddb
  1. 7
      EPAServeur/IServices/ICollaborateurService.cs
  2. 231
      EPAServeur/Services/CollaborateurService.cs
  3. 2
      EPAServeur/Services/EngagementService.cs
  4. 5
      EPAServeur/Services/NoteService.cs

@ -11,19 +11,12 @@ namespace EPAServeur.IServices
{
public interface ICollaborateurService
{
CollaborateurDTO GetCollaborateurById(Guid? id);
Task<CollaborateurDTO> GetCollaborateurByIdAsync(Guid? id);
CollaborateurDTO GetCollaborateurByMail(string mail);
Task<CollaborateurDTO> GetCollaborateurByMailAsync(string mail);
IEnumerable<CollaborateurDTO> GetCollaborateurs(List<string> roles, List<long?> idBUs, bool? asc, int? numPage, int? parPAge, string texte, string tri, DateTime? dateDebut, DateTime? dateFin);
Task<IEnumerable<CollaborateurDTO>> GetCollaborateursAsync(List<string> roles, List<long?> idBUs, bool? asc, int? numPage, int? parPAge, string texte, string tri, DateTime? dateDebut, DateTime? dateFin);
int GetCollaborateursCount(List<string> roles, List<long?> idBUs, string texte, DateTime? dateDebut, DateTime? dateFin);
Task<int> GetCollaborateursCountAsync(List<string> roles, List<long?> idBUs, string texte, DateTime? dateDebut, DateTime? dateFin);
IEnumerable<CollaborateurDTO> GetCollaborateursByReferent(Guid? idReferent, bool? asc, int? numPage, int? parPage, string texte, string tri);
Task<IEnumerable<CollaborateurDTO>> GetCollaborateursByReferentAsync(Guid? idReferent, bool? asc, int? numPage, int? parPage, string texte, string tri);
int GetCollaborateursCountByReferent(Guid? idReferent, string texte);
Task<int> GetCollaborateursCountByReferentAsync(Guid? idReferent, string texte);
IEnumerable<CollaborateurDTO> GetReferentsPrecedentsEP(Guid? idCollaborateur);
Task<IEnumerable<CollaborateurDTO>> GetReferentsPrecedentsEPAsync(Guid? idCollaborateur);

@ -57,182 +57,6 @@ namespace EPAServeur.Services
#endregion
#region Services Sync
/// <summary>
/// Récupérer un collaborateur en fonction d'un id
/// </summary>
/// <param name="id">Identifiant du collaborateur à renvoyer</param>
/// <returns>Le collaborateur corresponant à l'id en paramètre</returns>
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);
}
/// <summary>
/// Récupérer un collaborateur en fonction d'un mail
/// </summary>
/// <param name="mail">Mail du collaborateur à renvoyer</param>
/// <returns>Le collaborateur correspondant au mail en paramètre</returns>
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);
}
/// <summary>
/// Récupérer la liste de tous les collaborateurs
/// </summary>
///
/// <param name="roles">Liste des rôles auxquels les collaborateurs à récupérer appartiennent</param>
/// <param name="idBUs">Liste des business units auxquelles sont rattachés les collaborateurs à récupérer</param>
/// <param name="asc">Précise si la liste est trié dans l'ordre croissant ou décroissant</param>
/// <param name="numPage">Numéro de la page qui est affiché du côté front</param>
/// <param name="parPage">Nombre de collaborateurs à renvoyer</param>
/// <param name="idAgence">id de l'agence à laquelle appartient les collaborateurs à récupérer</param>
/// <param name="idBU"></param>
/// <param name="texte">permet de récupérer les collaborateurs dont le nom + prénom ou le prénom + nom contient le texte</param>
/// <param name="tri">Choisir l'attribut par lequel est trié la liste</param>
/// <param name="dateDebut">Date à partir de laquelle les collaborateurs sont arrivés</param>
/// <param name="dateFin">Date jusqu'à laquelle les collaborateurs sont arrivés</param>
/// <returns>Renvoie la liste des collaborateurs en fonction des paramètres</returns>
public IEnumerable<CollaborateurDTO> GetCollaborateurs(List<string> roles, List<long?> idBUs, bool? asc, int? numPage, int? parPage, string texte, string tri, DateTime? dateDebut, DateTime? dateFin)
{
IEnumerable<Collaborateur> collaborateurs;
IEnumerable<CollaborateurDTO> 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);
}
/// <summary>
/// Récupérer le nombre de collaborateurs correspondant aux paramètres de la requête
/// </summary>
///
/// <param name="roles">Liste des rôles auxquels les collaborateurs à récupérer appartiennent</param>
/// <param name="idBUs">Liste des business units auxquelles sont rattachés les collaborateurs à récupérer</param>
/// <param name="texte">permet de récupérer les collaborateurs dont le nom + prénom ou le prénom + nom contient le texte</param>
/// <param name="dateDebut">Date à partir de laquelle les collaborateurs sont arrivés</param>
/// <param name="dateFin">Date jusqu'à laquelle les collaborateurs sont arrivés</param>
/// <returns>Renvoie la liste des collaborateurs en fonction des paramètres</returns>
/// <returns>Le nombre de collaborateur</returns>
public int GetCollaborateursCount(List<string> roles, List<long?> idBUs, string texte, DateTime? dateDebut, DateTime? dateFin)
{
IEnumerable<Collaborateur> collaborateurs;
IEnumerable<CollaborateurDTO> 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();
}
/// <summary>
/// Récupérer les collaborateurs d'un référent
/// </summary>
/// <param name="idReferent">id du référent des collaborateurs à récupérer</param>
/// <param name="asc">Précise si la liste est trié dans l'ordre croissant ou décroissant</param>
/// <param name="numPage">Numéro de la page qui est affiché du côté front</param>
/// <param name="parPage">Nombre de collaborateurs à renvoyer</param>
/// <param name="texte">permet de récupérer les collaborateurs dont le nom + prénom ou le prénom + nom contient le texte</param>
/// <param name="tri">Choisir l'attribut par lequel est trié la liste</param>
/// <returns>Renvoyer les collaborateurs du référent dont l'id est passé en paramètre</returns>
public IEnumerable<CollaborateurDTO> 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<Guid?> collaborateursIds = (from referentEP in context.ReferentEP
where referentEP.IdReferent.Value.Equals(idReferent)
select (Guid?)referentEP.IdCollaborateur).ToList();
IEnumerable<Collaborateur> collaborateurs = collaborateurApi.ChercherCollab(collabsId: collaborateursIds);
int skip = (numPage.Value - 1) * parPage.Value;
int take = parPage.Value;
IEnumerable<CollaborateurDTO> 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);
}
/// <summary>
/// Récupérer le nombre de collaborateurs d'un référent en fonction des paramètres
/// </summary>
/// <param name="idReferent">id du référent des collaborateurs à récupérer</param>
/// <param name="texte">permet de récupérer les collaborateurs dont le nom + prénom ou le prénom + nom contient le texte</param>
/// <returns>Renvoyer le nombre collaborateurs du référent en fonction des paramètres</returns>
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<Guid?> collaborateursIds = (from referentEP in context.ReferentEP
where referentEP.IdReferent.Value.Equals(idReferent)
select (Guid?)referentEP.IdCollaborateur).ToList();
IEnumerable<Collaborateur> collaborateurs = collaborateurApi.ChercherCollab(collabsId: collaborateursIds);
IEnumerable<CollaborateurDTO> collaborateursDTO = from c in collaborateurs
select GetCollaborateurDTO(c, false);
if (texte != null)
collaborateursDTO = TriTexte(collaborateursDTO, texte.ToLower());
return collaborateursDTO.Count();
}
/// <summary>
/// Récupérer la liste référents ayant fait passer des EP au collaborateur
/// </summary>
/// <param name="idCollaborateur">id du collaborateur concerné</param>
/// <returns>Liste des référents</returns>
public IEnumerable<CollaborateurDTO> GetReferentsPrecedentsEP(Guid? idCollaborateur)
{
throw new NotImplementedException();
}
#endregion
#region Services Async
/// <summary>
/// Récupérer un collaborateur en fonction d'un id de manière asynchrone
@ -283,8 +107,11 @@ namespace EPAServeur.Services
IEnumerable<CollaborateurDTO> 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<Collaborateur> collaborateurs = await collaborateurApi.ChercherCollabAsync(collabsId: collaborateursIds);
/*IEnumerable<CollaborateurDTO> 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<CollaborateurDTO> collaborateursDTO = await Task.WhenAll(tasks);
@ -509,29 +333,6 @@ namespace EPAServeur.Services
return businessUnitDTO;
}
/// <summary>
/// Transforme un collaborateur en collaborateurDTO
/// </summary>
/// <param name="collaborateur">collaborateur à transformer en collaborateurDTO</param>
/// <param name="chercherReferent">Indiquer si le référent du collaborateur doit être récupéré ou non</param>
/// <returns>Renvoie la transformation DTO du collaborateur</returns>
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;
}
/// <summary>
/// Transforme un collaborateur en collaborateurDTO de manière asynchrone
@ -557,23 +358,7 @@ namespace EPAServeur.Services
return collaborateurDTO;
}
/// <summary>
/// Récupérer le référent EP d'un collaborateur si il existe
/// </summary>
/// <param name="collaborateur">Le collaborateur dont on cherche le référent EP</param>
/// <returns>Le référent EP du collaborateur</returns>
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);
}
/// <summary>
/// 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
}

@ -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é
};

@ -463,9 +463,10 @@ namespace EPAServeur.Services
/// <returns>Note transformer en DetailsNoteDTO</returns>
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;
}

Loading…
Cancel
Save