Ajout de commentaire pour le service des notes

develop
Yanaël GRETTE 4 years ago
parent 8768f63fac
commit 64b4394994
  1. 4
      ApiCollaborateur/ReferentApi.cs
  2. 93
      Services/NoteService.cs

@ -45,7 +45,7 @@ namespace IO.Swagger.ApiCollaborateur
/// <returns>ApiResponse of Referent</returns> /// <returns>ApiResponse of Referent</returns>
ApiResponse<Referent> ChercherRefActuelCollabIdWithHttpInfo (Guid? collabId); ApiResponse<Referent> ChercherRefActuelCollabIdWithHttpInfo (Guid? collabId);
/// <summary> /// <summary>
/// rechercher le référent qui a le plus suivi /// rechercher le référent actuel
/// </summary> /// </summary>
/// <remarks> /// <remarks>
/// rechercher le référent actuel du collaborateur à l&#x27;aide de son identifiant /// rechercher le référent actuel du collaborateur à l&#x27;aide de son identifiant
@ -56,7 +56,7 @@ namespace IO.Swagger.ApiCollaborateur
Referent ChercherRefActuelCollabMail (string mailApside); Referent ChercherRefActuelCollabMail (string mailApside);
/// <summary> /// <summary>
/// rechercher le référent qui a le plus suivi /// rechercher le référent actuel
/// </summary> /// </summary>
/// <remarks> /// <remarks>
/// rechercher le référent actuel du collaborateur à l&#x27;aide de son identifiant /// rechercher le référent actuel du collaborateur à l&#x27;aide de son identifiant

@ -11,17 +11,34 @@ using System.Threading.Tasks;
namespace EPAServeur.Services namespace EPAServeur.Services
{ {
/// <summary>
/// Service permettant de gérer les notes (ajout, récupération, mise à jour, suppression)
/// </summary>
public class NoteService : INoteService public class NoteService : INoteService
{ {
#region Variables
/// <summary>
/// API pour accéder aux données collaborateur en passant par le service collaborateur
/// </summary>
private readonly ICollaborateurService collaborateurService; private readonly ICollaborateurService collaborateurService;
/// <summary>
/// Contexte pour interagir avec la base de données MySQL du serveur EP
/// </summary>
private readonly EpContext context; private readonly EpContext context;
#endregion
#region Constructeurs
public NoteService(ICollaborateurService _collaborateurService, EpContext _context) public NoteService(ICollaborateurService _collaborateurService, EpContext _context)
{ {
collaborateurService = _collaborateurService; collaborateurService = _collaborateurService;
context = _context; context = _context;
} }
#endregion
/// <summary>
/// Ajouter une nouvelle note dans la base de données
/// </summary>
/// <param name="nouvelleNote">La nouvelle note a ajouté en base</param>
/// <returns></returns>
public Note AjouterNote(DetailsNoteDTO nouvelleNote) public Note AjouterNote(DetailsNoteDTO nouvelleNote)
{ {
if (!IsDetailsNoteValide(nouvelleNote)) if (!IsDetailsNoteValide(nouvelleNote))
@ -32,6 +49,18 @@ namespace EPAServeur.Services
return note; return note;
} }
#region Services
/// <summary>
/// Récupérer la liste des notes qu'un auteur a écrit sur un collaborateur
/// </summary>
/// <param name="idAuteur">Id de l'auteur des notes à récupérer</param>
/// <param name="idCollaborateur">Id du collaborateur pour lesquelles les notes ont été écrites</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 notes à renvoyer</param>
/// <param name="texte">permet de récupérer les notes les informations du collaborateur ou le titre de la note contient le texte</param>
/// <param name="tri">Choisir l'attribut par lequel est trié la liste</param>
/// <returns>Retour la liste des notes à afficher</returns>
public IEnumerable<AffichageNoteDTO> GetNotesByCollaborateur(Guid? idAuteur, Guid? idCollaborateur, bool? asc, int? numPage, int? parPage, string texte, string tri) public IEnumerable<AffichageNoteDTO> GetNotesByCollaborateur(Guid? idAuteur, Guid? idCollaborateur, bool? asc, int? numPage, int? parPage, string texte, string tri)
{ {
if (collaborateurService.GetProfilById(idAuteur) == null || collaborateurService.GetProfilById(idCollaborateur) == null) if (collaborateurService.GetProfilById(idAuteur) == null || collaborateurService.GetProfilById(idCollaborateur) == null)
@ -46,11 +75,16 @@ namespace EPAServeur.Services
where n.IdAuteur == idAuteur && n.IdCollaborateur == idCollaborateur where n.IdAuteur == idAuteur && n.IdCollaborateur == idCollaborateur
select NoteToAffichageDTO(n, collaborateurService)); select NoteToAffichageDTO(n, collaborateurService));
AffichageNoteDTO = (from a in AffichageNoteDTO AffichageNoteDTO = (from a in AffichageNoteDTO
where a.Collaborateur.ToLower().Contains(texte) || a.Titre.ToLower().Contains(texte) where a.Titre.ToLower().Contains(texte)
select a).Skip(skip).Take(take); select a).Skip(skip).Take(take);
return AffichageNoteDTO; return AffichageNoteDTO;
} }
/// <summary>
/// Récupérer une note en fonction de son id
/// </summary>
/// <param name="idNote">Id de la note à récupérer</param>
/// <returns>L'objet DTO de la note correspondant à l'id passé en paramètre</returns>
public DetailsNoteDTO GetNoteById(long? idNote) public DetailsNoteDTO GetNoteById(long? idNote)
{ {
Note note = context.Note.Find(idNote); Note note = context.Note.Find(idNote);
@ -67,6 +101,16 @@ namespace EPAServeur.Services
throw new NotImplementedException(); throw new NotImplementedException();
} }
/// <summary>
/// Récupérer la liste des notes qu'un auteur a écrit sur un collaborateur
/// </summary>
/// <param name="idAuteur">Id de l'auteur des notes à 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 notes à renvoyer</param>
/// <param name="texte">permet de récupérer les notes les informations du collaborateur ou le titre de la note contient le texte</param>
/// <param name="tri">Choisir l'attribut par lequel est trié la liste</param>
/// <returns>Retour la liste des notes à afficher</returns>
public IEnumerable<AffichageNoteDTO> GetNotesByAuteur(Guid? idAuteur, bool? asc, int? numPage, int? parPage, string texte, string tri) public IEnumerable<AffichageNoteDTO> GetNotesByAuteur(Guid? idAuteur, bool? asc, int? numPage, int? parPage, string texte, string tri)
{ {
if (collaborateurService.GetCollaborateurById(idAuteur) == null) if (collaborateurService.GetCollaborateurById(idAuteur) == null)
@ -93,6 +137,11 @@ namespace EPAServeur.Services
return AffichageNoteDTO; return AffichageNoteDTO;
} }
/// <summary>
/// Supprimer une note en fonction de son Id
/// </summary>
/// <param name="idNote">Id de la note à supprimer</param>
/// <returns>Si oui ou non la notea bien été supprimé</returns>
public bool SupprimerNote(long? idNote) public bool SupprimerNote(long? idNote)
{ {
Note note = context.Note.Find(idNote); Note note = context.Note.Find(idNote);
@ -103,12 +152,18 @@ namespace EPAServeur.Services
return true; return true;
} }
/// <summary>
/// Mettre à jour une note
/// </summary>
/// <param name="idNote">Id de la note à modifier</param>
/// <param name="note"></param>
/// <returns></returns>
public Note UpdateNote(long? idNote, DetailsNoteDTO note) public Note UpdateNote(long? idNote, DetailsNoteDTO note)
{ {
if (!IsDetailsNoteValide(note)) if (!IsDetailsNoteValide(note))
return null; return null;
Note noteToUpdate = context.Note.Find(idNote); Note noteToUpdate = context.Note.Find(idNote);
if (noteToUpdate == null) if (noteToUpdate == null || note.Id != noteToUpdate.Id )
return AjouterNote(note); return AjouterNote(note);
noteToUpdate.Titre = note.Titre; noteToUpdate.Titre = note.Titre;
noteToUpdate.Texte = note.Texte; noteToUpdate.Texte = note.Texte;
@ -117,13 +172,26 @@ namespace EPAServeur.Services
return noteToUpdate; return noteToUpdate;
} }
/// <summary>
/// Vérifier si un objet DetailsNoteDTO possède est valide pour ajout ou mise à jour
/// </summary>
/// <remarks> Un objet DetailsNoteDTO est valide si aucune de ses propriétés n'est à null</remarks>
/// <param name="note"></param>
/// <returns>true si l'objet est valide, false sinon</returns>
private bool IsDetailsNoteValide(DetailsNoteDTO note) private bool IsDetailsNoteValide(DetailsNoteDTO note)
{ {
return !(note == null || note.IdAuteur == null || note.Collaborateur == null || note.Collaborateur.Id == null || note.Titre == null || note.Texte == null) ; return !(note == null || note.IdAuteur == null || note.Collaborateur == null || note.Collaborateur.Id == null || note.Titre == null || note.Texte == null) ;
} }
#endregion
//Object to DTO #region ObjectToDTO
/// <summary>
/// Transformer un objet note en objet pour afficher un note dans dans un tableau
/// </summary>
/// <param name="note">Note à transformer</param>
/// <param name="collaborateurService">Service collaborateur pour récupérer les informations des collaborateurs</param>
/// <returns>La note transformée pour être affichée</returns>
private static AffichageNoteDTO NoteToAffichageDTO(Note note, ICollaborateurService collaborateurService) private static AffichageNoteDTO NoteToAffichageDTO(Note note, ICollaborateurService collaborateurService)
{ {
CollaborateurDTO collaborateur = collaborateurService.GetCollaborateurById(note.IdCollaborateur); CollaborateurDTO collaborateur = collaborateurService.GetCollaborateurById(note.IdCollaborateur);
@ -138,6 +206,11 @@ namespace EPAServeur.Services
return affichage; return affichage;
} }
/// <summary>
/// Transformatino d'une note en DetailsNoteDTO
/// </summary>
/// <param name="note">Note à transformer</param>
/// <returns>Note transformer en DetailsNoteDTO</returns>
private DetailsNoteDTO NoteToDetailSDTO(Note note) private DetailsNoteDTO NoteToDetailSDTO(Note note)
{ {
DetailsNoteDTO details = new DetailsNoteDTO() DetailsNoteDTO details = new DetailsNoteDTO()
@ -152,8 +225,15 @@ namespace EPAServeur.Services
}; };
return details; return details;
} }
#endregion
//DTO to Object #region DTOToObject
/// <summary>
/// Transformer l'objet DTO d'une note en note
/// </summary>
/// <remarks>En général, de base, cette méthode est prévue pour être utilisée qu'à la création d'une nouvelle note, dateCreation et dateUpdate sont donc initialisée à ce moment là</remarks>
/// <param name="detailsNoteDTO">Objet DTO à transformer en note</param>
/// <returns>L'objet DTO transformé en note</returns>
private Note DetailsNoteDTOToNouvelleNote(DetailsNoteDTO detailsNoteDTO) private Note DetailsNoteDTOToNouvelleNote(DetailsNoteDTO detailsNoteDTO)
{ {
Note note = new Note() Note note = new Note()
@ -167,5 +247,6 @@ namespace EPAServeur.Services
}; };
return note; return note;
} }
#endregion
} }
} }

Loading…
Cancel
Save