diff --git a/ApiCollaborateur/ReferentApi.cs b/ApiCollaborateur/ReferentApi.cs index d36c4f1..c49c8f0 100644 --- a/ApiCollaborateur/ReferentApi.cs +++ b/ApiCollaborateur/ReferentApi.cs @@ -45,7 +45,7 @@ namespace IO.Swagger.ApiCollaborateur /// ApiResponse of Referent ApiResponse ChercherRefActuelCollabIdWithHttpInfo (Guid? collabId); /// - /// rechercher le référent qui a le plus suivi + /// rechercher le référent actuel /// /// /// rechercher le référent actuel du collaborateur à l'aide de son identifiant @@ -56,7 +56,7 @@ namespace IO.Swagger.ApiCollaborateur Referent ChercherRefActuelCollabMail (string mailApside); /// - /// rechercher le référent qui a le plus suivi + /// rechercher le référent actuel /// /// /// rechercher le référent actuel du collaborateur à l'aide de son identifiant diff --git a/Services/NoteService.cs b/Services/NoteService.cs index 8399e86..2e4783a 100644 --- a/Services/NoteService.cs +++ b/Services/NoteService.cs @@ -11,17 +11,34 @@ using System.Threading.Tasks; namespace EPAServeur.Services { + /// + /// Service permettant de gérer les notes (ajout, récupération, mise à jour, suppression) + /// public class NoteService : INoteService { + #region Variables + /// + /// API pour accéder aux données collaborateur en passant par le service collaborateur + /// private readonly ICollaborateurService collaborateurService; + /// + /// Contexte pour interagir avec la base de données MySQL du serveur EP + /// private readonly EpContext context; - + #endregion + #region Constructeurs public NoteService(ICollaborateurService _collaborateurService, EpContext _context) { collaborateurService = _collaborateurService; context = _context; } + #endregion + /// + /// Ajouter une nouvelle note dans la base de données + /// + /// La nouvelle note a ajouté en base + /// public Note AjouterNote(DetailsNoteDTO nouvelleNote) { if (!IsDetailsNoteValide(nouvelleNote)) @@ -32,6 +49,18 @@ namespace EPAServeur.Services return note; } + #region Services + /// + /// Récupérer la liste des notes qu'un auteur a écrit sur un collaborateur + /// + /// Id de l'auteur des notes à récupérer + /// Id du collaborateur pour lesquelles les notes ont été écrites + /// 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 notes à renvoyer + /// permet de récupérer les notes les informations du collaborateur ou le titre de la note contient le texte + /// Choisir l'attribut par lequel est trié la liste + /// Retour la liste des notes à afficher public IEnumerable GetNotesByCollaborateur(Guid? idAuteur, Guid? idCollaborateur, bool? asc, int? numPage, int? parPage, string texte, string tri) { if (collaborateurService.GetProfilById(idAuteur) == null || collaborateurService.GetProfilById(idCollaborateur) == null) @@ -46,11 +75,16 @@ namespace EPAServeur.Services where n.IdAuteur == idAuteur && n.IdCollaborateur == idCollaborateur select NoteToAffichageDTO(n, collaborateurService)); 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); return AffichageNoteDTO; } + /// + /// Récupérer une note en fonction de son id + /// + /// Id de la note à récupérer + /// L'objet DTO de la note correspondant à l'id passé en paramètre public DetailsNoteDTO GetNoteById(long? idNote) { Note note = context.Note.Find(idNote); @@ -67,6 +101,16 @@ namespace EPAServeur.Services throw new NotImplementedException(); } + /// + /// Récupérer la liste des notes qu'un auteur a écrit sur un collaborateur + /// + /// Id de l'auteur des notes à 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 notes à renvoyer + /// permet de récupérer les notes les informations du collaborateur ou le titre de la note contient le texte + /// Choisir l'attribut par lequel est trié la liste + /// Retour la liste des notes à afficher public IEnumerable GetNotesByAuteur(Guid? idAuteur, bool? asc, int? numPage, int? parPage, string texte, string tri) { if (collaborateurService.GetCollaborateurById(idAuteur) == null) @@ -93,6 +137,11 @@ namespace EPAServeur.Services return AffichageNoteDTO; } + /// + /// Supprimer une note en fonction de son Id + /// + /// Id de la note à supprimer + /// Si oui ou non la notea bien été supprimé public bool SupprimerNote(long? idNote) { Note note = context.Note.Find(idNote); @@ -103,12 +152,18 @@ namespace EPAServeur.Services return true; } + /// + /// Mettre à jour une note + /// + /// Id de la note à modifier + /// + /// public Note UpdateNote(long? idNote, DetailsNoteDTO note) { if (!IsDetailsNoteValide(note)) return null; Note noteToUpdate = context.Note.Find(idNote); - if (noteToUpdate == null) + if (noteToUpdate == null || note.Id != noteToUpdate.Id ) return AjouterNote(note); noteToUpdate.Titre = note.Titre; noteToUpdate.Texte = note.Texte; @@ -117,13 +172,26 @@ namespace EPAServeur.Services return noteToUpdate; } - + /// + /// Vérifier si un objet DetailsNoteDTO possède est valide pour ajout ou mise à jour + /// + /// Un objet DetailsNoteDTO est valide si aucune de ses propriétés n'est à null + /// + /// true si l'objet est valide, false sinon private bool IsDetailsNoteValide(DetailsNoteDTO note) { 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 + /// + /// Transformer un objet note en objet pour afficher un note dans dans un tableau + /// + /// Note à transformer + /// Service collaborateur pour récupérer les informations des collaborateurs + /// La note transformée pour être affichée private static AffichageNoteDTO NoteToAffichageDTO(Note note, ICollaborateurService collaborateurService) { CollaborateurDTO collaborateur = collaborateurService.GetCollaborateurById(note.IdCollaborateur); @@ -138,6 +206,11 @@ namespace EPAServeur.Services return affichage; } + /// + /// Transformatino d'une note en DetailsNoteDTO + /// + /// Note à transformer + /// Note transformer en DetailsNoteDTO private DetailsNoteDTO NoteToDetailSDTO(Note note) { DetailsNoteDTO details = new DetailsNoteDTO() @@ -152,8 +225,15 @@ namespace EPAServeur.Services }; return details; } + #endregion - //DTO to Object + #region DTOToObject + /// + /// Transformer l'objet DTO d'une note en note + /// + /// 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à + /// Objet DTO à transformer en note + /// L'objet DTO transformé en note private Note DetailsNoteDTOToNouvelleNote(DetailsNoteDTO detailsNoteDTO) { Note note = new Note() @@ -167,5 +247,6 @@ namespace EPAServeur.Services }; return note; } + #endregion } }