#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
{
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.SaveChanges();
@@ -57,7 +56,6 @@ public class DbTitreRepository : ITitreRepository
{
try
{
this.logger.LogDebug("Comptage des titres en base de données");
var count = this.context.Titres.Count();
this.logger.LogDebug("Nombre total de titres: {Count}", count);
return count;
@@ -75,7 +73,6 @@ public class DbTitreRepository : ITitreRepository
try
{
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.SaveChanges();
@@ -100,7 +97,6 @@ public class DbTitreRepository : ITitreRepository
try
{
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
.OrderByDescending(t => t.DateCreation)
@@ -125,12 +121,10 @@ public class DbTitreRepository : ITitreRepository
try
{
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);
if (existingTitre != null)
{
this.logger.LogDebug("Titre trouvé, incrémentation du compteur de lectures");
existingTitre.NbLectures++;
this.context.SaveChanges();
this.logger.LogDebug("Nouveau nombre de lectures: {NbLectures}", existingTitre.NbLectures);
@@ -158,12 +152,10 @@ public class DbTitreRepository : ITitreRepository
try
{
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);
if (existingTitre != null)
{
this.logger.LogDebug("Titre trouvé, incrémentation du compteur de likes");
existingTitre.NbLikes++;
this.context.SaveChanges();
this.logger.LogDebug("Nouveau nombre de likes: {NbLikes}", existingTitre.NbLikes);
@@ -281,9 +273,6 @@ public class DbTitreRepository : ITitreRepository
{
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
.Include(t => t.Artiste)
.Include(t => t.Styles)
@@ -307,7 +296,6 @@ public class DbTitreRepository : ITitreRepository
try
{
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
.Include(t => t.Artiste)

View File

@@ -81,8 +81,16 @@ public class ArtisteController : Controller
Biographie = model.Biographie,
};
// Persister les données.
this.artisteRepository.Add(artiste);
try
{
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.
return this.RedirectToAction("Index");

View File

@@ -252,24 +252,18 @@ public class TitreController : Controller
/// <summary>
/// Méthode POST pour supprimer un titre.
/// </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>
[HttpPost]
public IActionResult Delete(AdminTitreDelete model)
public IActionResult DeleteTitre(int id)
{
var titre = this.titreRepository.Find(model.Id);
if (!this.ModelState.IsValid)
{
return this.View(model);
}
var titre = this.titreRepository.Find(id);
if (titre != null)
{
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
@{
ViewData["Title"] = "Supprimer un titre";
}
<div class="container mt-4">
<h1 class="mb-3">Supprimer un titre</h1>
@@ -13,7 +17,7 @@
@Model.Artiste ?
</p>
<form asp-action="Delete" method="post">
<form asp-action="DeleteTitre" method="post">
<input type="hidden" asp-for="Id"/>