diff --git a/Webzine.WebApplication/Areas/Administration/Controllers/StylesController.cs b/Webzine.WebApplication/Areas/Administration/Controllers/StylesController.cs
index e044b81..0f4be27 100644
--- a/Webzine.WebApplication/Areas/Administration/Controllers/StylesController.cs
+++ b/Webzine.WebApplication/Areas/Administration/Controllers/StylesController.cs
@@ -64,6 +64,36 @@ namespace Webzine.WebApplication.Areas.Administration.Controllers
return View(viewModel);
}
+ // GET: Administration/Styles/Create
+ public ActionResult 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)
@@ -101,5 +131,50 @@ namespace Webzine.WebApplication.Areas.Administration.Controllers
return View(model);
}
}
+
+ // GET: Administration/Styles/Edit/5
+ [HttpGet]
+ public ActionResult Edit(int id)
+ {
+ // Recherche du style (simulation avec la liste _styles)
+ var style = _styles.FirstOrDefault(s => s.IdStyle == id);
+
+ if (style == null)
+ {
+ return NotFound();
+ }
+
+ // Mapping vers le ViewModel
+ var model = new StyleEditViewModel
+ {
+ IdStyle = style.IdStyle,
+ Libelle = style.Libelle
+ };
+
+ 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);
+ }
+ }
}
-}
\ No newline at end of file
+}
diff --git a/Webzine.WebApplication/Areas/Administration/ViewModels/Styles/StyleCreateViewModel.cs b/Webzine.WebApplication/Areas/Administration/ViewModels/Styles/StyleCreateViewModel.cs
new file mode 100644
index 0000000..53cfe1e
--- /dev/null
+++ b/Webzine.WebApplication/Areas/Administration/ViewModels/Styles/StyleCreateViewModel.cs
@@ -0,0 +1,20 @@
+//
| # | -Libellé | -Actions | +Libellé | +Actions |
|---|---|---|---|---|
| - @style.IdStyle - | -+ | @style.Libelle | -- @* Bouton Supprimer (correspond à votre action Delete) *@ - + | + + + + | @@ -46,7 +46,7 @@ else {
| Aucun style disponible. | +Aucun style disponible. | |||