#199 La méthode pour supprimer un titre est renommée et prend un id au lieu du modèle. Ajout d'un try catch sur artiste controller pour debugger l'ajout d'un artiste.

This commit is contained in:
josephine.vetu
2026-04-06 19:08:56 +02:00
parent 0e8c320478
commit 425ab13617
4 changed files with 19 additions and 25 deletions

View File

@@ -33,7 +33,6 @@ public class DbTitreRepository : ITitreRepository
try try
{ {
this.logger.LogInformation("Ajout d'un nouveau titre: {Libelle}", titre.Libelle); this.logger.LogInformation("Ajout d'un nouveau titre: {Libelle}", titre.Libelle);
this.logger.LogDebug("Début de l'ajout du titre en base de données");
this.context.Titres.Add(titre); this.context.Titres.Add(titre);
this.context.SaveChanges(); this.context.SaveChanges();
@@ -57,7 +56,6 @@ public class DbTitreRepository : ITitreRepository
{ {
try try
{ {
this.logger.LogDebug("Comptage des titres en base de données");
var count = this.context.Titres.Count(); var count = this.context.Titres.Count();
this.logger.LogDebug("Nombre total de titres: {Count}", count); this.logger.LogDebug("Nombre total de titres: {Count}", count);
return count; return count;
@@ -75,7 +73,6 @@ public class DbTitreRepository : ITitreRepository
try try
{ {
this.logger.LogInformation("Suppression du titre avec l'ID: {IdTitre}", titre.IdTitre); this.logger.LogInformation("Suppression du titre avec l'ID: {IdTitre}", titre.IdTitre);
this.logger.LogDebug("Début de la suppression du titre en base de données");
this.context.Titres.Remove(titre); this.context.Titres.Remove(titre);
this.context.SaveChanges(); this.context.SaveChanges();
@@ -100,7 +97,6 @@ public class DbTitreRepository : ITitreRepository
try try
{ {
this.logger.LogDebug("Recherche des titres avec offset: {Offset}, limit: {Limit}", offset, limit); this.logger.LogDebug("Recherche des titres avec offset: {Offset}, limit: {Limit}", offset, limit);
this.logger.LogDebug("Préparation de la requête avec les inclusions Artiste et Styles");
var titres = this.context.Titres var titres = this.context.Titres
.OrderByDescending(t => t.DateCreation) .OrderByDescending(t => t.DateCreation)
@@ -125,12 +121,10 @@ public class DbTitreRepository : ITitreRepository
try try
{ {
this.logger.LogInformation("Incrémentation du nombre de lectures pour le titre ID: {IdTitre}", titre.IdTitre); this.logger.LogInformation("Incrémentation du nombre de lectures pour le titre ID: {IdTitre}", titre.IdTitre);
this.logger.LogDebug("Recherche du titre en base de données");
var existingTitre = this.context.Titres.Find(titre.IdTitre); var existingTitre = this.context.Titres.Find(titre.IdTitre);
if (existingTitre != null) if (existingTitre != null)
{ {
this.logger.LogDebug("Titre trouvé, incrémentation du compteur de lectures");
existingTitre.NbLectures++; existingTitre.NbLectures++;
this.context.SaveChanges(); this.context.SaveChanges();
this.logger.LogDebug("Nouveau nombre de lectures: {NbLectures}", existingTitre.NbLectures); this.logger.LogDebug("Nouveau nombre de lectures: {NbLectures}", existingTitre.NbLectures);
@@ -158,12 +152,10 @@ public class DbTitreRepository : ITitreRepository
try try
{ {
this.logger.LogInformation("Incrémentation du nombre de likes pour le titre ID: {IdTitre}", titre.IdTitre); this.logger.LogInformation("Incrémentation du nombre de likes pour le titre ID: {IdTitre}", titre.IdTitre);
this.logger.LogDebug("Recherche du titre en base de données");
var existingTitre = this.context.Titres.Find(titre.IdTitre); var existingTitre = this.context.Titres.Find(titre.IdTitre);
if (existingTitre != null) if (existingTitre != null)
{ {
this.logger.LogDebug("Titre trouvé, incrémentation du compteur de likes");
existingTitre.NbLikes++; existingTitre.NbLikes++;
this.context.SaveChanges(); this.context.SaveChanges();
this.logger.LogDebug("Nouveau nombre de likes: {NbLikes}", existingTitre.NbLikes); this.logger.LogDebug("Nouveau nombre de likes: {NbLikes}", existingTitre.NbLikes);
@@ -281,9 +273,6 @@ public class DbTitreRepository : ITitreRepository
{ {
try try
{ {
this.logger.LogDebug("Récupération de tous les titres");
this.logger.LogDebug("Préparation de la requête avec les inclusions Artiste et Styles");
var titres = this.context.Titres var titres = this.context.Titres
.Include(t => t.Artiste) .Include(t => t.Artiste)
.Include(t => t.Styles) .Include(t => t.Styles)
@@ -307,7 +296,6 @@ public class DbTitreRepository : ITitreRepository
try try
{ {
this.logger.LogInformation("Recherche des titres par style: {Libelle}", libelle); this.logger.LogInformation("Recherche des titres par style: {Libelle}", libelle);
this.logger.LogDebug("Préparation de la requête de recherche par style");
var titres = this.context.Titres var titres = this.context.Titres
.Include(t => t.Artiste) .Include(t => t.Artiste)

View File

@@ -81,8 +81,16 @@ public class ArtisteController : Controller
Biographie = model.Biographie, Biographie = model.Biographie,
}; };
// Persister les données. try
this.artisteRepository.Add(artiste); {
this.artisteRepository.Add(artiste);
this.logger.LogInformation("Création d'un nouvel artiste: {Nom}", artiste.Nom);
}
catch (Exception ex)
{
this.logger.LogError(ex, "Erreur lors de la création de l'artiste: {Nom}", artiste.Nom);
return this.View(model);
}
// Renvoyer sur la page Index. // Renvoyer sur la page Index.
return this.RedirectToAction("Index"); return this.RedirectToAction("Index");

View File

@@ -252,24 +252,18 @@ public class TitreController : Controller
/// <summary> /// <summary>
/// Méthode POST pour supprimer un titre. /// Méthode POST pour supprimer un titre.
/// </summary> /// </summary>
/// <param name="model">Le titre à supprimer.</param> /// <param name="id">L'identifiant du titre à supprimer, utilisé pour récupérer les données du titre à partir de la liste des titres générés.</param>
/// <returns>Redirige vers la page d'index d'admin titre.</returns> /// <returns>Redirige vers la page d'index d'admin titre.</returns>
[HttpPost] [HttpPost]
public IActionResult Delete(AdminTitreDelete model) public IActionResult DeleteTitre(int id)
{ {
var titre = this.titreRepository.Find(model.Id); var titre = this.titreRepository.Find(id);
if (!this.ModelState.IsValid)
{
return this.View(model);
}
if (titre != null) if (titre != null)
{ {
this.titreRepository.Delete(titre); this.titreRepository.Delete(titre);
return this.RedirectToAction("Index");
} }
return this.View(model); return this.RedirectToAction("Index");
} }
} }

View File

@@ -1,5 +1,9 @@
@model Webzine.WebApplication.Areas.Administration.ViewModels.Titre.AdminTitreDelete @model Webzine.WebApplication.Areas.Administration.ViewModels.Titre.AdminTitreDelete
@{
ViewData["Title"] = "Supprimer un titre";
}
<div class="container mt-4"> <div class="container mt-4">
<h1 class="mb-3">Supprimer un titre</h1> <h1 class="mb-3">Supprimer un titre</h1>
@@ -13,7 +17,7 @@
@Model.Artiste ? @Model.Artiste ?
</p> </p>
<form asp-action="Delete" method="post"> <form asp-action="DeleteTitre" method="post">
<input type="hidden" asp-for="Id"/> <input type="hidden" asp-for="Id"/>