From bf9058f51636595baf76a723971c306407a58c77 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Yana=C3=ABl=20GRETTE?= Date: Wed, 16 Dec 2020 15:14:17 +0100 Subject: [PATCH] =?UTF-8?q?Mise=20=C3=A0=20jour=20de=20la=20suppresion=20d?= =?UTF-8?q?'une=20note?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- EPAServeur/Controllers/NotesApi.cs | 27 ++++++++++++++++++++++++++- EPAServeur/IServices/INoteService.cs | 2 ++ EPAServeur/Services/NoteService.cs | 28 +++++++++++++++++++++++++++- 3 files changed, 55 insertions(+), 2 deletions(-) diff --git a/EPAServeur/Controllers/NotesApi.cs b/EPAServeur/Controllers/NotesApi.cs index 045c410..97aef7c 100644 --- a/EPAServeur/Controllers/NotesApi.cs +++ b/EPAServeur/Controllers/NotesApi.cs @@ -172,7 +172,7 @@ namespace IO.Swagger.Controllers /// Une erreur est survenue sur le serveur [HttpDelete] [Route("/api/notes/{idNote}")] - [Authorize(AuthenticationSchemes = BearerAuthenticationHandler.SchemeName)] + //[Authorize(AuthenticationSchemes = BearerAuthenticationHandler.SchemeName)] [ValidateModelState] [SwaggerOperation("DeleteNote")] [SwaggerResponse(statusCode: 401, type: typeof(ErreurDTO), description: "L'utilisateur souhaitant accéder à la ressource n'est pas authentifié")] @@ -181,6 +181,31 @@ namespace IO.Swagger.Controllers [SwaggerResponse(statusCode: 500, type: typeof(ErreurDTO), description: "Une erreur est survenue sur le serveur")] public virtual IActionResult DeleteNote([FromRoute][Required]long? idNote) { + try + { + noteService.SupprimerNote(idNote); + } + catch(DbUpdateException e) + { + logger.LogError(e.Message); + ErreurDTO erreur = new ErreurDTO() + { + Code = 500, + Message = "Une erreur est survenue lors de la suppression" + }; + return StatusCode(erreur.Code.Value, erreur); + } + catch (Exception e) + { + logger.LogError(e.Message); + ErreurDTO erreur = new ErreurDTO() + { + Code = 500, + Message = "Une erreur inconnue est survenue" + }; + return StatusCode(erreur.Code.Value, erreur); + } + return NoContent(); //TODO: Uncomment the next line to return response 204 or use other options such as return this.NotFound(), return this.BadRequest(..), ... // return StatusCode(204); diff --git a/EPAServeur/IServices/INoteService.cs b/EPAServeur/IServices/INoteService.cs index 9068a3e..37324b3 100644 --- a/EPAServeur/IServices/INoteService.cs +++ b/EPAServeur/IServices/INoteService.cs @@ -21,6 +21,8 @@ namespace EPAServeur.IServices */ DetailsNoteDTO AjouterNote(DetailsNoteDTO note); Task AjouterNoteAsync(DetailsNoteDTO note); + void SupprimerNote(long? idNote); + void SupprimerNoteAsync(long? idNote); diff --git a/EPAServeur/Services/NoteService.cs b/EPAServeur/Services/NoteService.cs index 474786f..cb8fd2a 100644 --- a/EPAServeur/Services/NoteService.cs +++ b/EPAServeur/Services/NoteService.cs @@ -71,7 +71,19 @@ namespace EPAServeur.Services return nouvelleNote; } - + // + /// Supprimer une note en fonction de son Id de manière async + /// + /// Id de la note à supprimer + public void SupprimerNote(long? idNote) + { + Note note = context.Note.Find(idNote); + if (note != null) + { + context.Remove(note); + context.SaveChanges(); + } + } #endregion #region Services Async @@ -102,6 +114,20 @@ namespace EPAServeur.Services nouvelleNote.Id = note.IdNote; return nouvelleNote; } + + /// + /// Supprimer une note en fonction de son Id de manière async + /// + /// Id de la note à supprimer + public async void SupprimerNoteAsync(long? idNote) + { + Note note = await context.Note.FindAsync(idNote); + if (note != null) + { + context.Remove(note); + await context.SaveChangesAsync(); + } + } #endregion