Merge pull request 'J1/feat/admin_page_style' (#68) from J1/feat/admin_page_style into dev

Reviewed-on: http://10.4.0.131/DI1-P4-E1/Webzine/pulls/68
Reviewed-by: Loic Masi <loic.masi@diiage.org>
This commit is contained in:
c.bobin
2026-03-06 14:28:45 +01:00
6 changed files with 234 additions and 19 deletions

View File

@@ -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);
}
}
}
}
}