Suppression des méthodes synchrones inutilisées pour la partie Note

develop
Yanaël GRETTE 4 years ago
parent 5392c3f50f
commit d3aaf48312
  1. 15
      EPAServeur/IServices/INoteService.cs
  2. 214
      EPAServeur/Services/NoteService.cs

@ -10,26 +10,11 @@ namespace EPAServeur.IServices
{
public interface INoteService
{
/*
public IEnumerable<AffichageNoteDTO> GetNotes(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);
public DetailsNoteDTO GetNoteById(long? idNote);
public IEnumerable<AffichageNoteDTO> GetNotesByCollaborateur(Guid? idAuteur, Guid? idCollaborateur, bool? asc, int? numPage, int? parPAge, string texte, string tri);
public DetailsNoteDTO AjouterNote(DetailsNoteDTO nouvelleNote);
public void SupprimerNote(long? idNote);
public DetailsNoteDTO UpdateNote(long? idNote, DetailsNoteDTO note);
*/
DetailsNoteDTO AjouterNote(DetailsNoteDTO note);
Task<DetailsNoteDTO> AjouterNoteAsync(DetailsNoteDTO note);
void SupprimerNote(long? idNote);
void SupprimerNoteAsync(long? idNote);
DetailsNoteDTO GetNoteById(long? idNote);
Task<DetailsNoteDTO> GetNoteByIdAsync(long? idNote);
IEnumerable<AffichageNoteDTO> GetNotesByAuteur(Guid? idAuteur, bool? asc, int? numPage, int? parPAge, string texte, string tri);
Task<IEnumerable<AffichageNoteDTO>> GetNotesByAuteurAsync(Guid? idAuteur, bool? asc, int? numPage, int? parPAge, string texte, string tri);
int GetNotesByAuteurCount(Guid? idAuteur, string texte);
Task<int> GetNotesByAuteurCountAsync(Guid? idAuteur, string texte);
DetailsNoteDTO UpdateNote(long? idNote, DetailsNoteDTO note);
Task<DetailsNoteDTO> UpdateNoteAsync(long? idNote, DetailsNoteDTO note);

@ -42,166 +42,7 @@ namespace EPAServeur.Services
}
#endregion
#region Services Sync
/// <summary>
/// Ajouter une nouvelle note dans la base de données
/// </summary>
/// <param name="nouvelleNote">La nouvelle note a ajouté en base</param>
/// <returns>La nouvelle note ajouté</returns>
public DetailsNoteDTO AjouterNote(DetailsNoteDTO nouvelleNote)
{
//vérifier qu'il n'y a aucune valeur null
CheckNoteValide(nouvelleNote);
//vérifier que le référent existe
Collaborateur auteur = collaborateurApi.ChercherCollabId(nouvelleNote.IdAuteur);
CheckReferent(auteur);
//vérifier que le collaborateur existe
Collaborateur collaborateur = collaborateurApi.ChercherCollabId(nouvelleNote.Collaborateur.Id);
CheckCollaborateur(collaborateur);
//transformer la note DTO en Note
Note note = DetailsNoteDTOToNouvelleNote(nouvelleNote);
//ajouter la note et sauvegarder
context.Note.Add(note);
context.SaveChanges();
nouvelleNote.Id = note.IdNote;
return nouvelleNote;
}
// <summary>
/// Supprimer une note en fonction de son Id de manière async
/// </summary>
/// <param name="idNote">Id de la note à supprimer</param>
public void SupprimerNote(long? idNote)
{
Note note = context.Note.Find(idNote);
if (note != null)
{
context.Remove(note);
context.SaveChanges();
}
}
/// <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)
{
Note note = context.Note.Find(idNote);
//vérifier l'existance de la note
if (note == null)
throw new NoteNotFoundException();
//vérifier l'existence de l'auteur
Collaborateur auteur = collaborateurApi.ChercherCollabId(note.IdAuteur);
if (auteur == null)
throw new ReferentNotFoundException("L'auteur de la note n'existe pas");
return NoteToDetailSDTO(note);
}
/// <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)
{
Collaborateur auteur = collaborateurApi.ChercherCollabId(idAuteur);
if (auteur == null)
throw new ReferentNotFoundException("L'auteur de la note n'existe pas");
int skip = (numPage.Value - 1) * parPage.Value;
int take = parPage.Value;
//Stopwatch stopwatch = new Stopwatch();
//stopwatch.Start();
/*
* IEnumerable<AffichageNoteDTO> AffichageNoteDTO = (from n in context.Note
where n.IdAuteur == idAuteur
select NoteToAffichageDTO(n));
*/
IEnumerable<Note> notes = (from n in context.Note
where n.IdAuteur == idAuteur
select n);
IEnumerable<AffichageNoteDTO> AffichageNoteDTO = (from n in notes
select NoteToAffichageDTO(n));
if (texte != null)
{
texte = texte.ToLower();
AffichageNoteDTO = (from a in AffichageNoteDTO
where a.Collaborateur.ToLower().Contains(texte) || a.Titre.ToLower().Contains(texte)
select a);
}
return AffichageNoteDTO.Skip(skip).Take(take);
}
/// <summary>
/// Récupérer le nombre de notes qu'un auteur a écrit
/// </summary>
/// <param name="idAuteur">Id de l'auteur des notes à récupérer</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>
/// <returns>Le nombre de notes</returns>
public int GetNotesByAuteurCount(Guid? idAuteur, string texte)
{
Collaborateur auteur = collaborateurApi.ChercherCollabId(idAuteur);
if (auteur == null)
throw new ReferentNotFoundException("L'auteur de la note n'existe pas");
IEnumerable<Note> notes = (from n in context.Note
where n.IdAuteur == idAuteur
select n);
IEnumerable<AffichageNoteDTO> AffichageNoteDTO = (from n in notes
select NoteToAffichageDTO(n));
if (texte != null)
{
texte = texte.ToLower();
AffichageNoteDTO = (from a in AffichageNoteDTO
where a.Collaborateur.ToLower().Contains(texte) || a.Titre.ToLower().Contains(texte)
select a);
}
return AffichageNoteDTO.Count();
}
/// <summary>
/// Mettre à jour une note de manière async
/// </summary>
/// <param name="idNote">Id de la note à modifier</param>
/// <param name="note">Note avec les informations à jour</param>
/// <returns>La note mise à jour</returns>
public DetailsNoteDTO UpdateNote(long? idNote, DetailsNoteDTO note)
{
if (idNote != note.Id)
throw new NoteIdImcompatibleException("L'id de la note a mettre à jour et la note a mettre à jour sont incompatble");
CheckNoteValide(note);
Note noteToUpdate = context.Note.Find(idNote);
if (!noteToUpdate.DateCreation.Equals(note.DateCreation) || note.Collaborateur.Id != noteToUpdate.IdCollaborateur || note.IdAuteur != noteToUpdate.IdAuteur)
throw new NoteIdImcompatibleException("La note a mettre à jour et la note en base de données ne correspondent pas");
noteToUpdate.Titre = note.Titre;
noteToUpdate.Texte = note.Texte;
noteToUpdate.DateMiseAJour = DateTime.Now;
note.DateMiseAjour = DateTime.Now;
context.SaveChanges();
return NoteToDetailSDTO(noteToUpdate);
}
#endregion
#region Services Async
/// <summary>
/// Ajouter une nouvelle note dans la base de données de manière async
@ -258,7 +99,7 @@ namespace EPAServeur.Services
//vérifier l'existance de la note
if (note == null)
throw new NoteNotFoundException();
throw new NoteNotFoundException("La note cherchée n'a pas été trouvée");
//vérifier l'existence de l'auteur
Collaborateur auteur = await collaborateurApi.ChercherCollabIdAsync(note.IdAuteur);
if (auteur == null)
@ -350,7 +191,7 @@ namespace EPAServeur.Services
noteToUpdate.DateMiseAJour = DateTime.Now;
note.DateMiseAjour = DateTime.Now;
await context.SaveChangesAsync();
return NoteToDetailSDTO(noteToUpdate);
return await NoteToDetailSDTOAsync(noteToUpdate);
}
#endregion
@ -408,30 +249,7 @@ namespace EPAServeur.Services
#endregion
#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 AffichageNoteDTO NoteToAffichageDTO(Note note)
{
/*
string infoCollab = "Aucun collaborateur lié";
Collaborateur collaborateur = collaborateurApi.ChercherCollabId((Guid?)note.IdCollaborateur);
if (collaborateur != null)
infoCollab = collaborateur.Prenom + collaborateur.Nom;
*/
AffichageNoteDTO affichage = new AffichageNoteDTO()
{
Id = note.IdNote,
IdCollaborateur = note.IdCollaborateur,
Collaborateur = "ui",
Titre = note.Titre,
DateMiseAJour = note.DateMiseAJour
};
return affichage;
}
/// <summary>
/// Transformer un objet note en objet pour afficher un note dans dans un tableau
@ -456,29 +274,7 @@ namespace EPAServeur.Services
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)
{
/*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,
DateCreation = note.DateCreation,
DateMiseAjour = note.DateMiseAJour,
Titre = note.Titre,
Texte = note.Texte,
IdAuteur = note.IdAuteur,
Collaborateur = new CollaborateurDTO(),
};
return details;
}
/// <summary>
/// Transformatino d'une note en DetailsNoteDTO de manière asynchrone

Loading…
Cancel
Save