#89 Modification de ActionResult à IActionResult
This commit is contained in:
@@ -38,7 +38,7 @@ namespace Webzine.WebApplication.Areas.Administration.Controllers
|
||||
/// Affiche la liste des commentaires dans la vue Index.
|
||||
/// </summary>
|
||||
/// <returns>>La vue Index avec le ViewModel contenant la liste des commentaires.</returns>
|
||||
public ActionResult Index()
|
||||
public IActionResult Index()
|
||||
{
|
||||
// Création de données "bouchon" (mock) pour tester l'affichage
|
||||
var listeCommentaires = new List<Commentaire>
|
||||
@@ -85,7 +85,7 @@ namespace Webzine.WebApplication.Areas.Administration.Controllers
|
||||
/// </summary>
|
||||
/// <param name="id">L'identifiant du commentaire à supprimer.</param>
|
||||
/// <returns>La vue de confirmation de suppression avec le ViewModel contenant les détails du commentaire à supprimer, ou une réponse NotFound si le commentaire n'existe pas.</returns>
|
||||
public ActionResult Delete(int id) // TODO IActionResult
|
||||
public IActionResult Delete(int id)
|
||||
{
|
||||
var commentaire = _commentaires
|
||||
.FirstOrDefault(c => c.IdCommentaire == id);
|
||||
@@ -105,28 +105,5 @@ namespace Webzine.WebApplication.Areas.Administration.Controllers
|
||||
|
||||
return View(vm);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Traite la confirmation de suppression d'un commentaire. En cas de succès, redirige vers la liste des commentaires. En cas d'erreur, affiche à nouveau la vue de confirmation avec le message d'erreur.
|
||||
/// </summary>
|
||||
/// <param name="id">L'identifiant du commentaire à supprimer.</param>
|
||||
/// <param name="model">Le ViewModel contenant les détails du commentaire à supprimer, utilisé pour afficher les informations en cas d'erreur.</param>
|
||||
/// <returns>Redirection vers la liste des commentaires en cas de succès, ou la vue de confirmation avec le message d'erreur en cas d'échec.</returns>
|
||||
[HttpPost]
|
||||
[ValidateAntiForgeryToken] // TODO pas utilisée encore, à virer. tag helper form le fait déjà auto
|
||||
public ActionResult Delete(int id, CommentaireDeleteViewModel model) //TODO IActionResult
|
||||
{
|
||||
// TODO ça boucle à l'infini si on supprime pas le commentaire, parce que la vue Delete.cshtml affiche les détails du commentaire à supprimer, et que le commentaire n'est pas supprimé en base de données, donc il réaffiche la même page avec les mêmes données, et ça boucle à l'infini
|
||||
try
|
||||
{
|
||||
return RedirectToAction(); // TODO rediriger vers la liste des commentaires, et pas juste RedirectToAction() qui va faire une erreur
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
// Log de l'erreur
|
||||
Console.WriteLine(e);
|
||||
return View(model);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -33,7 +33,7 @@ namespace Webzine.WebApplication.Areas.Administration.Controllers
|
||||
}
|
||||
|
||||
// GET: Administration/Styles
|
||||
public ActionResult Index()
|
||||
public IActionResult Index()
|
||||
{
|
||||
// Création de données "bouchon" (mock) pour tester l'affichage
|
||||
var listeStyles = new List<Style> // TODO remplacer par les données générées dans le constructeur (la Factory)
|
||||
@@ -65,38 +65,13 @@ namespace Webzine.WebApplication.Areas.Administration.Controllers
|
||||
}
|
||||
|
||||
// GET: Administration/Styles/Create
|
||||
public ActionResult Create()
|
||||
public IActionResult Create()
|
||||
{
|
||||
return View();
|
||||
}
|
||||
|
||||
// POST: Administration/Styles/Create
|
||||
[HttpPost]
|
||||
[ValidateAntiForgeryToken]
|
||||
public ActionResult Create(StyleCreateViewModel model)
|
||||
{
|
||||
if (!ModelState.IsValid)
|
||||
{
|
||||
return View(model);
|
||||
}
|
||||
|
||||
try
|
||||
{
|
||||
_logger.LogInformation("Nouveau style créé : {Libelle}", model.Libelle);
|
||||
return RedirectToAction(nameof(Index));
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
_logger.LogError(e, "Erreur lors de la création du style");
|
||||
ModelState.AddModelError("", "Une erreur est survenue lors de la création.");
|
||||
return View(model);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
// GET: Administration/Styles/Delete/5
|
||||
public ActionResult Delete(int id)
|
||||
public IActionResult Delete(int id)
|
||||
{
|
||||
var style = this._styles
|
||||
.FirstOrDefault(c => c.IdStyle == id);
|
||||
@@ -115,26 +90,9 @@ namespace Webzine.WebApplication.Areas.Administration.Controllers
|
||||
return View(vm);
|
||||
}
|
||||
|
||||
// POST: Administration/Styles/Delete/5
|
||||
[HttpPost]
|
||||
[ValidateAntiForgeryToken]
|
||||
public ActionResult Delete(int id, StyleDeleteViewModel model)
|
||||
{
|
||||
try
|
||||
{
|
||||
return RedirectToAction(nameof(Index));
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
// Log de l'erreur
|
||||
_logger.LogError(e, "Erreur lors de la suppression du style avec l'ID {StyleId}", id);
|
||||
return View(model);
|
||||
}
|
||||
}
|
||||
|
||||
// GET: Administration/Styles/Edit/5
|
||||
[HttpGet]
|
||||
public ActionResult Edit(int id)
|
||||
public IActionResult Edit(int id)
|
||||
{
|
||||
// Recherche du style (simulation avec la liste _styles)
|
||||
var style = _styles.FirstOrDefault(s => s.IdStyle == id);
|
||||
@@ -153,28 +111,5 @@ namespace Webzine.WebApplication.Areas.Administration.Controllers
|
||||
|
||||
return View(model);
|
||||
}
|
||||
|
||||
// POST: Administration/Styles/Edit/5
|
||||
[HttpPost]
|
||||
[ValidateAntiForgeryToken]
|
||||
public ActionResult Edit(int id, StyleEditViewModel model)
|
||||
{
|
||||
if (!ModelState.IsValid)
|
||||
{
|
||||
return View(model);
|
||||
}
|
||||
|
||||
try
|
||||
{
|
||||
_logger.LogInformation("Style {Id} mis à jour : {Libelle}", id, model.Libelle);
|
||||
return RedirectToAction(nameof(Index));
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
_logger.LogError(e, "Erreur lors de la modification du style {Id}", id);
|
||||
ModelState.AddModelError("", "Une erreur est survenue lors de la modification.");
|
||||
return View(model);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -41,7 +41,7 @@ public class TitreController : Controller
|
||||
/// Affiche la liste des titres dans la vue Index.
|
||||
/// </summary>
|
||||
/// <returns>La vue Index avec le ViewModel contenant la liste des titres.</returns>
|
||||
public ActionResult Index()
|
||||
public IActionResult Index()
|
||||
{
|
||||
var model = _titres.Select(t => new AdminTitreList
|
||||
{
|
||||
@@ -62,7 +62,7 @@ public class TitreController : Controller
|
||||
/// Affiche le formulaire de création d'un nouveau titre dans la vue Create.
|
||||
/// </summary>
|
||||
/// <returns>La vue Create avec le ViewModel contenant les listes déroulantes pour les artistes et les styles.</returns>
|
||||
public ActionResult Create()
|
||||
public IActionResult Create()
|
||||
{
|
||||
var model = new AdminTitreForm
|
||||
{
|
||||
@@ -82,32 +82,12 @@ public class TitreController : Controller
|
||||
return View(model);
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Traite la soumission du formulaire de création d'un nouveau titre. Actuellement, cette méthode est un stub qui redirige vers l'index sans effectuer de logique de création réelle.
|
||||
/// </summary>
|
||||
/// <param name="collection">Le formulaire soumis contenant les données du nouveau titre. Actuellement, ce paramètre n'est pas utilisé.</param>
|
||||
/// <returns>Redirige vers l'action Index après la soumission du formulaire. En cas d'erreur, retourne la vue Create pour permettre à l'utilisateur de corriger les données.</returns>
|
||||
[HttpPost]
|
||||
[ValidateAntiForgeryToken]
|
||||
public ActionResult Create(IFormCollection collection) // TODO IFormCollection c'est quoi
|
||||
{
|
||||
try
|
||||
{
|
||||
return RedirectToAction(nameof(Index));
|
||||
}
|
||||
catch
|
||||
{
|
||||
return View();
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Affiche le formulaire de modification d'un titre existant dans la vue Edit, en préremplissant les champs avec les données du titre sélectionné. Les listes déroulantes pour les artistes et les styles sont également remplies pour permettre à l'utilisateur de modifier ces associations.
|
||||
/// </summary>
|
||||
/// <param name="id">L'identifiant du titre à modifier, utilisé pour récupérer les données du titre à partir de la liste des titres générés.</param>
|
||||
/// <returns>La vue Edit avec le ViewModel contenant les données du titre à modifier, ainsi que les listes déroulantes pour les artistes et les styles. En cas d'erreur, retourne une réponse NotFound si le titre n'existe pas.</returns>
|
||||
public ActionResult Edit(int id)
|
||||
public IActionResult Edit(int id)
|
||||
{
|
||||
var titre = _titres.First(t => t.IdTitre == id);
|
||||
|
||||
@@ -142,32 +122,12 @@ public class TitreController : Controller
|
||||
return View(model);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Traite la soumission du formulaire de modification d'un titre existant. Actuellement, cette méthode est un stub qui redirige vers l'index sans effectuer de logique de modification réelle.
|
||||
/// </summary>
|
||||
/// <param name="id">L'identifiant du titre à modifier, utilisé pour identifier le titre à mettre à jour. Actuellement, ce paramètre n'est pas utilisé dans la logique de traitement.</param>
|
||||
/// <param name="collection">Le formulaire soumis contenant les données modifiées du titre. Actuellement, ce paramètre n'est pas utilisé dans la logique de traitement.</param>
|
||||
/// <returns>Redirige vers l'action Index après la soumission du formulaire. En cas d'erreur, retourne la vue Edit pour permettre à l'utilisateur de corriger les données.</returns>
|
||||
[HttpPost]
|
||||
[ValidateAntiForgeryToken]
|
||||
public ActionResult Edit(int id, IFormCollection collection)
|
||||
{
|
||||
try
|
||||
{
|
||||
return RedirectToAction(nameof(Index));
|
||||
}
|
||||
catch
|
||||
{
|
||||
return View();
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Affiche la vue de confirmation de suppression d'un titre, en récupérant les détails du titre à supprimer à partir de l'identifiant fourni. Le ViewModel contient les informations essentielles du titre, telles que le libellé et le nom de l'artiste, pour permettre à l'utilisateur de confirmer la suppression.
|
||||
/// </summary>
|
||||
/// <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>La vue de confirmation de suppression avec le ViewModel contenant les détails du titre à supprimer, ou une réponse NotFound si le titre n'existe pas.</returns>
|
||||
public ActionResult Delete(int id)
|
||||
public IActionResult Delete(int id)
|
||||
{
|
||||
var titre = _titres.First(t => t.IdTitre == id);
|
||||
|
||||
@@ -180,20 +140,4 @@ public class TitreController : Controller
|
||||
|
||||
return View(model);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Traite la confirmation de suppression d'un titre. En cas de succès, redirige vers la liste des titres après avoir supprimé le titre de la liste. En cas d'erreur, affiche à nouveau la vue de confirmation avec le message d'erreur.
|
||||
/// </summary>
|
||||
/// <param name="model">Le ViewModel contenant les détails du titre à supprimer, utilisé pour identifier le titre à supprimer et pour afficher les informations en cas d'erreur.</param>
|
||||
/// <returns>Redirection vers la liste des titres en cas de succès, ou la vue de confirmation avec le message d'erreur en cas d'échec.</returns>
|
||||
[HttpPost]
|
||||
[ValidateAntiForgeryToken]
|
||||
public ActionResult Delete(AdminTitreDelete model)
|
||||
{
|
||||
var titre = _titres.First(t => t.IdTitre == model.Id);
|
||||
|
||||
_titres.Remove(titre);
|
||||
|
||||
return RedirectToAction(nameof(Index));
|
||||
}
|
||||
}
|
||||
@@ -26,7 +26,7 @@ namespace Webzine.WebApplication.Controllers
|
||||
/// Affiche la page d'accueil du webzine, présentant les derniers titres et les titres les plus populaires.
|
||||
/// </summary>
|
||||
/// <returns>La vue Index avec le ViewModel contenant les listes de titres à afficher.</returns>
|
||||
public ActionResult Index()
|
||||
public IActionResult Index()
|
||||
{
|
||||
_logger.LogInformation("Arrivée sur la page d'accueil");
|
||||
|
||||
|
||||
Reference in New Issue
Block a user