diff --git a/Webzine.Entity/Artiste.cs b/Webzine.Entity/Artiste.cs
index 8f1df08..5cd404e 100644
--- a/Webzine.Entity/Artiste.cs
+++ b/Webzine.Entity/Artiste.cs
@@ -1,8 +1,4 @@
-using System;
-using System.Collections.Generic;
-using System.ComponentModel.DataAnnotations;
-using System.Text;
-using System.Timers;
+using System.ComponentModel.DataAnnotations;
namespace Webzine.Entity
{
diff --git a/Webzine.Entity/Commentaire.cs b/Webzine.Entity/Commentaire.cs
index baaa852..b29c14e 100644
--- a/Webzine.Entity/Commentaire.cs
+++ b/Webzine.Entity/Commentaire.cs
@@ -1,7 +1,4 @@
-using System;
-using System.Collections.Generic;
-using System.ComponentModel.DataAnnotations;
-using System.Text;
+using System.ComponentModel.DataAnnotations;
namespace Webzine.Entity
{
diff --git a/Webzine.Entity/Fixtures/SeedDataSpotify.cs b/Webzine.Entity/Fixtures/SeedDataSpotify.cs
index 71bd7fc..2ebc21a 100644
--- a/Webzine.Entity/Fixtures/SeedDataSpotify.cs
+++ b/Webzine.Entity/Fixtures/SeedDataSpotify.cs
@@ -1,4 +1,4 @@
-namespace Webzine.EntitiesContext;
+namespace Webzine.Entity.Fixtures;
public class SeedDataSpotify
{
diff --git a/Webzine.Entity/Style.cs b/Webzine.Entity/Style.cs
index 628dfec..fcb010c 100644
--- a/Webzine.Entity/Style.cs
+++ b/Webzine.Entity/Style.cs
@@ -1,7 +1,4 @@
-using System;
-using System.Collections.Generic;
-using System.ComponentModel.DataAnnotations;
-using System.Text;
+using System.ComponentModel.DataAnnotations;
namespace Webzine.Entity
{
diff --git a/Webzine.Entity/Titre.cs b/Webzine.Entity/Titre.cs
index a5fa1ae..ccb8c63 100644
--- a/Webzine.Entity/Titre.cs
+++ b/Webzine.Entity/Titre.cs
@@ -1,7 +1,4 @@
-using System;
-using System.Collections.Generic;
-using System.ComponentModel.DataAnnotations;
-using System.Text;
+using System.ComponentModel.DataAnnotations;
namespace Webzine.Entity
{
diff --git a/Webzine.Repository/LocalEntityRepository.cs b/Webzine.Repository/LocalEntityRepository.cs
index 8095e32..f9684e7 100644
--- a/Webzine.Repository/LocalEntityRepository.cs
+++ b/Webzine.Repository/LocalEntityRepository.cs
@@ -20,8 +20,8 @@ public class LocalEntityRepository : ITitreRepository
/// Service de journalisation injecte pour suivre les operations du repository.
public LocalEntityRepository(ILogger logger)
{
- _logger = logger;
- _logger.LogDebug(1, "NLog injected into LocalEntityRepository");
+ this._logger = logger;
+ this._logger.LogDebug(1, "NLog injected into LocalEntityRepository");
var factory = new DataFactory();
var artistes = factory.GenerateArtists(10);
diff --git a/Webzine.WebApplication/Areas/Administration/Controllers/ArtisteController.cs b/Webzine.WebApplication/Areas/Administration/Controllers/ArtisteController.cs
index 05bfeb0..d059092 100644
--- a/Webzine.WebApplication/Areas/Administration/Controllers/ArtisteController.cs
+++ b/Webzine.WebApplication/Areas/Administration/Controllers/ArtisteController.cs
@@ -1,9 +1,7 @@
using Microsoft.AspNetCore.Mvc;
-using Microsoft.AspNetCore.Mvc.Rendering;
using Webzine.Entity;
using Webzine.Entity.Fixtures;
using Webzine.WebApplication.Areas.Administration.ViewModels.Artiste;
-using Webzine.WebApplication.Areas.Administration.ViewModels.Titre;
namespace Webzine.WebApplication.Areas.Administration.Controllers;
@@ -17,15 +15,16 @@ public class ArtisteController : Controller
public ArtisteController(ILogger logger)
{
- _logger = logger;
+ this._logger = logger;
this._logger.LogDebug(1, "initialisation du ArtisteController d'administration");
var factory = new DataFactory();
_artistes = factory.GenerateArtists(10);
}
+
///
- /// Affiche la liste des artistes. Pour l'instant, les artistes sont générés à partir de noms prédéfinis via la méthode SeedArtisteByName de la classe ArtisteFactory.
- /// Chaque artiste est ensuite ajouté à une liste d'artistes qui est passée à la vue via un objet GroupeArtisteViewModel.
+ /// Affiche la liste des artistes. Pour l'instant, les artistes sont générés à partir de noms prédéfinis via la méthode SeedArtisteByName de la classe ArtisteFactory.
+ /// Chaque artiste est ensuite ajouté à une liste d'artistes qui est passée à la vue.
///
/// Redirection.
public IActionResult Index()
@@ -33,14 +32,9 @@ public class ArtisteController : Controller
var _artistes_ordre = _artistes.OrderBy(t => t.Nom).ToList();
- _logger.LogInformation("Initialisation du contrôleur TitreController pour l'Administration.");
+ this._logger.LogInformation("Initialisation du contrôleur TitreController pour l'Administration.");
- GroupeArtisteViewModel groupeArtisteModel = new GroupeArtisteViewModel
- {
- Artistes = _artistes_ordre
- };
-
- return View(groupeArtisteModel);
+ return View(_artistes_ordre);
}
///
diff --git a/Webzine.WebApplication/Areas/Administration/Controllers/CommentaireController.cs b/Webzine.WebApplication/Areas/Administration/Controllers/CommentaireController.cs
index f5554fa..1342459 100644
--- a/Webzine.WebApplication/Areas/Administration/Controllers/CommentaireController.cs
+++ b/Webzine.WebApplication/Areas/Administration/Controllers/CommentaireController.cs
@@ -18,11 +18,12 @@ namespace Webzine.WebApplication.Areas.Administration.Controllers
/// Service de journalisation injecté.
public CommentaireController(ILogger logger)
{
- _logger = logger;
+ this._logger = logger;
- _logger.LogInformation("Initialisation du contrôleur CommentaireController.");
+ this._logger.LogInformation("Initialisation du contrôleur CommentaireController.");
- var factory = new DataFactory();
+ var factory = new DataFactory(); // TODO injecter le factory via DI pour éviter de le recréer à chaque fois
+ // faire une classe statique
var _artistes = factory.GenerateArtists(10);
var _styles = factory.GenerateStyles(10);
@@ -30,49 +31,21 @@ namespace Webzine.WebApplication.Areas.Administration.Controllers
_commentaires = factory.GenerateCommentaires(50, _titres);
- _logger.LogInformation("Données fictives générées avec succès.");
+ this._logger.LogInformation("Données fictives générées avec succès.");
}
///
/// Affiche la liste des commentaires dans la vue Index.
///
/// >La vue Index avec le ViewModel contenant la liste des commentaires.
- public ActionResult Index()
+ public IActionResult Index()
{
// Création de données "bouchon" (mock) pour tester l'affichage
- var listeCommentaires = new List
- {
- new Commentaire
- {
- IdCommentaire = 1, // Correction: Id -> IdCommentaire
- Auteur = "Michel", // Correction: Nom -> Auteur
- Contenu = "Nulla sed velit nec tellus gravida molestie",
- DateCreation = new DateTime(2023, 1, 22, 15, 59, 28),
- // Important : On initialise l'objet Titre pour accéder à Titre.Libelle
- Titre = new Titre { Libelle = "St Germain - So Flute" },
- },
- new Commentaire
- {
- IdCommentaire = 2,
- Auteur = "Jeff",
- Contenu = "Lorem ipsum dolor sit.",
- DateCreation = new DateTime(2023, 1, 22, 14, 27, 8),
- Titre = new Titre { Libelle = "Queen - Bohemian Rapsody" },
- },
- new Commentaire
- {
- IdCommentaire = 3,
- Auteur = "Eva",
- Contenu = "Aenean vulputate eleifend tellus.",
- DateCreation = new DateTime(2023, 1, 22, 13, 2, 17),
- Titre = new Titre { Libelle = "Rammstein - Du hast" },
- },
- };
// Initialisation du ViewModel
var viewModel = new CommentaireViewModel
{
- Commentaires = listeCommentaires
+ Commentaires = _commentaires
};
return View(viewModel);
@@ -83,14 +56,17 @@ namespace Webzine.WebApplication.Areas.Administration.Controllers
/// Affiche la vue de confirmation de suppression d'un commentaire, en récupérant les détails du commentaire à supprimer à partir de l'identifiant fourni.
///
/// L'identifiant du commentaire à supprimer.
- /// 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.
- public ActionResult Delete(int id)
+ /// La vue de confirmation de suppression avec le ViewModel contenant les détails du commentaire à supprimer, ou une redirection vers l'index si le commentaire n'existe pas.
+ public IActionResult Delete(int id)
{
var commentaire = _commentaires
.FirstOrDefault(c => c.IdCommentaire == id);
if (commentaire == null)
- return NotFound();
+ {
+ this._logger.LogWarning("Commentaire avec ID {Id} introuvable pour suppression.", id);
+ return RedirectToAction("Index");
+ }
var vm = new CommentaireDeleteViewModel
{
@@ -103,27 +79,5 @@ namespace Webzine.WebApplication.Areas.Administration.Controllers
return View(vm);
}
-
- ///
- /// 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.
- ///
- /// L'identifiant du commentaire à supprimer.
- /// Le ViewModel contenant les détails du commentaire à supprimer, utilisé pour afficher les informations en cas d'erreur.
- /// 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.
- [HttpPost]
- [ValidateAntiForgeryToken]
- public ActionResult Delete(int id, CommentaireDeleteViewModel model)
- {
- try
- {
- return RedirectToAction();
- }
- catch (Exception e)
- {
- // Log de l'erreur
- Console.WriteLine(e);
- return View(model);
- }
- }
}
}
\ No newline at end of file
diff --git a/Webzine.WebApplication/Areas/Administration/Controllers/DashboardController.cs b/Webzine.WebApplication/Areas/Administration/Controllers/DashboardController.cs
index f4815d5..a2ac740 100644
--- a/Webzine.WebApplication/Areas/Administration/Controllers/DashboardController.cs
+++ b/Webzine.WebApplication/Areas/Administration/Controllers/DashboardController.cs
@@ -20,9 +20,9 @@ public class DashboardController : Controller
/// Service de journalisation injecté.
public DashboardController(ILogger logger)
{
- _logger = logger;
+ this._logger = logger;
- _logger.LogInformation("Initialisation du contrôleur TitreController.");
+ this._logger.LogInformation("Initialisation du contrôleur TitreController.");
var factory = new DataFactory();
@@ -32,7 +32,7 @@ public class DashboardController : Controller
factory.GenerateCommentaires(50, _titres);
- _logger.LogInformation("Données fictives générées avec succès.");
+ this._logger.LogInformation("Données fictives générées avec succès.");
}
///
@@ -41,40 +41,40 @@ public class DashboardController : Controller
/// La vue Index du tableau de bord.
public IActionResult Index()
{
- var mostChronicledArtist = _titres
+ var artisteLePlusChronique = _titres
.GroupBy(t => t.Artiste)
.OrderByDescending(g => g.Count())
.FirstOrDefault();
- var topArtistAlbums = _titres
+ var albumLePlusChronique = _titres
.GroupBy(t => t.Artiste)
.OrderByDescending(g => g.Select(t => t.Album).Distinct().Count())
.FirstOrDefault();
- var mostPlayedTrack = _titres
+ var musiqueLaPlusJouee = _titres
.OrderByDescending(t => t.NbLectures)
.FirstOrDefault();
var model = new DashboardViewModel
{
- ArtistCount = _artistes.Count,
+ NombreArtistes = _artistes.Count,
- MostChronicledArtistName = mostChronicledArtist?.Key.Nom,
+ ArtisteLePlusChronique = artisteLePlusChronique?.Key.Nom,
- TopArtistAlbumsName = topArtistAlbums?.Key.Nom,
+ AlbumLePlusChronique = albumLePlusChronique?.Key.Nom,
- BiographyCount = _artistes.Count(a => !string.IsNullOrEmpty(a.Biographie)),
+ NombreBiographies = _artistes.Count(a => !string.IsNullOrEmpty(a.Biographie)),
- MostPlayedTrackId = mostPlayedTrack?.IdTitre ?? 0,
- MostPlayedTrack = mostPlayedTrack?.Libelle,
+ IdMusiqueLaPlusJouee = musiqueLaPlusJouee?.IdTitre ?? 0,
+ MusiqueLaPlusJouee = musiqueLaPlusJouee?.Libelle,
- TrackCount = _titres.Count,
+ NombreTitres = _titres.Count,
- GenreCount = _styles.Count,
+ NombreGenres = _styles.Count,
- TotalPlays = _titres.Sum(t => t.NbLectures),
+ NombreLectures = _titres.Sum(t => t.NbLectures),
- TotalLikes = _titres.Sum(t => t.NbLikes)
+ NombreLikes = _titres.Sum(t => t.NbLikes)
};
return View(model);
diff --git a/Webzine.WebApplication/Areas/Administration/Controllers/StyleController.cs b/Webzine.WebApplication/Areas/Administration/Controllers/StyleController.cs
index 623530e..34f6cd1 100644
--- a/Webzine.WebApplication/Areas/Administration/Controllers/StyleController.cs
+++ b/Webzine.WebApplication/Areas/Administration/Controllers/StyleController.cs
@@ -21,39 +21,22 @@ namespace Webzine.WebApplication.Areas.Administration.Controllers
/// Service de journalisation injecté.
public StyleController(ILogger logger)
{
- _logger = logger;
+ this._logger = logger;
- _logger.LogInformation("Initialisation du contrôleur StyleController.");
+ this._logger.LogInformation("Initialisation du contrôleur StyleController.");
var factory = new DataFactory();
_styles = factory.GenerateStyles(10);
- _logger.LogInformation("Données fictives générées avec succès.");
+ this._logger.LogInformation("Données fictives générées avec succès.");
}
// GET: Administration/Styles
- public ActionResult Index()
+ public IActionResult Index()
{
// Création de données "bouchon" (mock) pour tester l'affichage
- var listeStyles = new List