diff --git a/Webzine.WebApplication/Areas/Administration/Controllers/ArtisteController.cs b/Webzine.WebApplication/Areas/Administration/Controllers/ArtisteController.cs
index 7df257a..e6ad7e5 100644
--- a/Webzine.WebApplication/Areas/Administration/Controllers/ArtisteController.cs
+++ b/Webzine.WebApplication/Areas/Administration/Controllers/ArtisteController.cs
@@ -50,14 +50,37 @@ public class ArtisteController : Controller
/// Redirection.
public IActionResult Create()
{
- var model = new AdminArtisteForm
+ return this.View();
+ }
+
+ ///
+ /// Formulaire de création d'un artiste.
+ ///
+ /// Paramètre nécessaire pour la création d'un artiste.
+ /// Redirection sur la page Index.
+ [HttpPost]
+ public IActionResult Create(ArtisteCreateViewModel model)
+ {
+ // vérifier si les données sont corrects.
+ if (!this.ModelState.IsValid)
{
- Id = 0,
- Nom = string.Empty,
- Biographie = string.Empty,
+ // Passer model en paramètre afin que
+ // l'utilisateur conserve sa saissie.
+ return this.View(model);
+ }
+
+ // Créer un objet Artiste avecc les paramètres.
+ var artiste = new Artiste
+ {
+ Nom = model.Nom,
+ Biographie = model.Biographie,
};
- return this.View(model);
+ // Persister les données.
+ this.artisteRepository.Add(artiste);
+
+ // Renvoyer sur la page Index.
+ return this.RedirectToAction("Index");
}
///
@@ -69,14 +92,37 @@ public class ArtisteController : Controller
{
var artiste = this.artisteRepository.Find(id);
- var model = new AdminArtisteForm
+ if (artiste == null)
{
- Id = artiste.IdArtiste,
- Nom = artiste.Nom,
- Biographie = artiste.Biographie,
+ return this.RedirectToAction("Index");
+ }
+
+ return this.View(artiste);
+ }
+
+ ///
+ /// Traitement du formulaire de modification d'un artiste.
+ ///
+ /// Paramètre d'un artiste.
+ /// Redirection sur Index.
+ [HttpPost]
+ public IActionResult Edit(ArtisteEditViewModel model)
+ {
+ var artiste = new Artiste
+ {
+ IdArtiste = model.Id,
+ Nom = model.Nom,
+ Biographie = model.Biographie,
};
- return this.View(model);
+ if (!this.ModelState.IsValid)
+ {
+ return this.View(artiste);
+ }
+
+ this.artisteRepository.Update(artiste);
+
+ return this.RedirectToAction("Index");
}
///
diff --git a/Webzine.WebApplication/Areas/Administration/Controllers/StyleController.cs b/Webzine.WebApplication/Areas/Administration/Controllers/StyleController.cs
index e6741f9..1283fd0 100644
--- a/Webzine.WebApplication/Areas/Administration/Controllers/StyleController.cs
+++ b/Webzine.WebApplication/Areas/Administration/Controllers/StyleController.cs
@@ -1,109 +1,170 @@
-namespace Webzine.WebApplication.Areas.Administration.Controllers
-{
- using Microsoft.AspNetCore.Mvc;
+namespace Webzine.WebApplication.Areas.Administration.Controllers;
- using Webzine.Repository.Contracts;
- using Webzine.WebApplication.Areas.Administration.ViewModels.Style;
+using Microsoft.AspNetCore.Mvc;
+
+using Webzine.Entity;
+using Webzine.Repository.Contracts;
+using Webzine.WebApplication.Areas.Administration.ViewModels.Style;
+
+///
+/// Controleur pour la gestion des styles dans l'administration du webzine.
+///
+[Area("Administration")]
+public class StyleController : Controller
+{
+ private readonly ILogger logger;
+ private readonly IStyleRepository styleRepository;
///
- /// Contrôleur pour la gestion des styles dans l'administration du webzine.
+ /// Initializes a new instance of the class.
///
- [Area("Administration")]
- public class StyleController : Controller
+ /// Service de journalisation injecte.
+ /// Repository des styles injecte.
+ public StyleController(
+ ILogger logger,
+ IStyleRepository styleRepository)
{
- private readonly ILogger logger;
- private readonly IStyleRepository styleRepository;
+ this.logger = logger;
+ this.styleRepository = styleRepository;
- ///
- /// Initializes a new instance of the class.
- /// Initialise une nouvelle instance de la classe .
- ///
- /// Service de journalisation injecté.
- /// Repository des styles injecté.
- public StyleController(
- ILogger logger,
- IStyleRepository styleRepository)
+ this.logger.LogInformation("Initialisation du controleur StyleController.");
+ }
+
+ ///
+ /// Affiche la liste des styles dans la vue Index.
+ ///
+ /// La vue Index avec la liste des styles.
+ public IActionResult Index()
+ {
+ IEnumerable