From b16fb2609113674d98429ea525cd751484a20a7b Mon Sep 17 00:00:00 2001 From: "josephine.vetu" Date: Thu, 26 Mar 2026 18:55:49 +0100 Subject: [PATCH] #118 Suppression des styles et des titres fonctionne. --- Webzine.Repository/DbTitreRepository.cs | 1 + .../Controllers/StyleController.cs | 34 ++++++++++++++----- .../Controllers/TitreController.cs | 20 +++++++++-- 3 files changed, 44 insertions(+), 11 deletions(-) diff --git a/Webzine.Repository/DbTitreRepository.cs b/Webzine.Repository/DbTitreRepository.cs index 0b0c260..081cf15 100644 --- a/Webzine.Repository/DbTitreRepository.cs +++ b/Webzine.Repository/DbTitreRepository.cs @@ -294,6 +294,7 @@ public class DbTitreRepository : ITitreRepository var titres = this.context.Titres .Include(t => t.Artiste) .Include(t => t.Styles) + .Include(t => t.Commentaires) .OrderBy(t => t.Libelle) .ToList(); diff --git a/Webzine.WebApplication/Areas/Administration/Controllers/StyleController.cs b/Webzine.WebApplication/Areas/Administration/Controllers/StyleController.cs index 4518ed3..8593248 100644 --- a/Webzine.WebApplication/Areas/Administration/Controllers/StyleController.cs +++ b/Webzine.WebApplication/Areas/Administration/Controllers/StyleController.cs @@ -1,6 +1,4 @@ using Microsoft.AspNetCore.Mvc; -using Webzine.Entity; -using Webzine.Entity.Fixtures; using Webzine.Repository.Contracts; using Webzine.WebApplication.Areas.Administration.ViewModels.Style; @@ -13,20 +11,22 @@ namespace Webzine.WebApplication.Areas.Administration.Controllers public class StyleController : Controller { private readonly ILogger logger; - private readonly IStyleRepository styles; + private readonly IStyleRepository styleRepository; /// /// Initialise une nouvelle instance de la classe . /// /// Service de journalisation injecté. /// Repository des styles injecté. - public StyleController(ILogger logger, IStyleRepository styles) + public StyleController( + ILogger logger, + IStyleRepository styleRepository) { this.logger = logger; this.logger.LogInformation("Initialisation du contrôleur StyleController."); - this.styles = styles; + this.styleRepository = styleRepository; } /// @@ -35,7 +35,7 @@ namespace Webzine.WebApplication.Areas.Administration.Controllers /// La vue Index avec le ViewModel contenant la liste des styles. public IActionResult Index() { - var listeStyles = this.styles.FindAll().Take(10); + var listeStyles = this.styleRepository.FindAll().Take(10); return this.View(listeStyles); } @@ -56,7 +56,7 @@ namespace Webzine.WebApplication.Areas.Administration.Controllers /// La vue de confirmation de suppression avec le ViewModel contenant les détails du style à supprimer, ou une redirection vers l'index si le style n'existe pas. public IActionResult Delete(int id) { - var style = this.styles.Find(id); + var style = this.styleRepository.Find(id); var vm = new StyleDeleteViewModel { @@ -67,6 +67,24 @@ namespace Webzine.WebApplication.Areas.Administration.Controllers return this.View(vm); } + /// + /// Méthode POST pour supprimer un style. + /// + /// Le style à supprimer. + /// Redirige vers la page d'index d'admin style. + [HttpPost] + public IActionResult Delete(StyleEditViewModel model) + { + var style = this.styleRepository.Find(model.IdStyle); + + if (style != null) + { + this.styleRepository.Delete(style); + } + + return this.RedirectToAction("Index"); + } + /// /// Affiche la vue d'édition d'un style existant, en récupérant les détails du style à éditer à partir de l'identifiant fourni. /// @@ -75,7 +93,7 @@ namespace Webzine.WebApplication.Areas.Administration.Controllers [HttpGet] public IActionResult Edit(int id) { - var style = styles.Find(id); + var style = styleRepository.Find(id); var model = new StyleEditViewModel { diff --git a/Webzine.WebApplication/Areas/Administration/Controllers/TitreController.cs b/Webzine.WebApplication/Areas/Administration/Controllers/TitreController.cs index 5cf3329..4ce4313 100644 --- a/Webzine.WebApplication/Areas/Administration/Controllers/TitreController.cs +++ b/Webzine.WebApplication/Areas/Administration/Controllers/TitreController.cs @@ -29,9 +29,6 @@ public class TitreController : Controller public TitreController(ILogger logger, ITitreRepository titreRepository, IArtisteRepository artisteRepository, IStyleRepository styleRepository) { this.logger = logger; - - this.logger.LogInformation("Initialisation du contrôleur TitreController pour l'Administration."); - this.titreRepository = titreRepository; this.artisteRepository = artisteRepository; this.styleRepository = styleRepository; @@ -140,4 +137,21 @@ public class TitreController : Controller return this.View(model); } + + /// + /// Méthode POST pour supprimer un titre. + /// + /// Le titre à supprimer. + /// Redirige vers la page d'index d'admin titre. + [HttpPost] + public IActionResult Delete(AdminTitreDelete model) + { + var titre = this.titreRepository.Find(model.Id); + if (titre != null) + { + this.titreRepository.Delete(titre); + } + + return this.RedirectToAction("Index"); + } } \ No newline at end of file