Ajout de l'implémentation du Repo pour la base de données afin d'afficher les titres sur la page d'accueil.

This commit is contained in:
Loic Masi
2026-03-26 12:00:44 +01:00
parent 9801eb555f
commit 23d46154db
12 changed files with 279 additions and 103 deletions

View File

@@ -5,7 +5,7 @@
namespace Webzine.WebApplication.Controllers
{
using Microsoft.AspNetCore.Mvc;
using Webzine.Repository.Fake;
using Webzine.Repository.Contracts;
using Webzine.WebApplication.ViewModels.Accueil;
/// <summary>
@@ -16,17 +16,22 @@ namespace Webzine.WebApplication.Controllers
// Injection du logger via le constructeur
private readonly ILogger<AccueilController> logger;
private readonly IConfiguration configuration;
private readonly ITitreRepository titreRepository;
/// <summary>
/// Initialise une nouvelle instance de la classe <see cref="AccueilController"/>.
/// </summary>
/// <param name="logger">Service de journalisation injecté pour enregistrer les événements et les erreurs.</param>
/// <param name="configuration">Service d'injection de configuration pour accéder aux paramètres de l'application.</param>
public AccueilController(ILogger<AccueilController> logger, IConfiguration configuration)
public AccueilController(
ILogger<AccueilController> logger,
IConfiguration configuration,
ITitreRepository titreRepository)
{
this.logger = logger;
this.configuration = configuration;
this.logger.LogDebug(1, "initialisation du AccueilController");
this.titreRepository = titreRepository;
}
/// <summary>
@@ -38,19 +43,19 @@ namespace Webzine.WebApplication.Controllers
this.logger.LogInformation("Arrivée sur la page d'accueil");
var derniereChronique = this.configuration.GetValue<int>("Webzine:NombreDerniereChronique");
var topTitres = this.configuration.GetValue<int>("Webzine:NombreDeTopTitres");
var titres = FakeDataFactory.GetTitres();
var nbTopTitres = this.configuration.GetValue<int>("Webzine:NombreDeTopTitres");
// var titres = FakeDataFactory.GetTitres();
// var titres = this.titreRepository.FindTitres(derniereChronique, nbTopTitres);
var titres = this.titreRepository.FindAll();
var vm = new AccueilIndexViewModel
{
DerniersTitres = titres
.OrderByDescending(t => t.DateCreation)
.Take(derniereChronique)
.ToList(),
DerniersTitres = titres.Take(derniereChronique).ToList(),
TopTitres = titres
.OrderByDescending(t => t.NbLikes)
.Take(topTitres)
.Take(nbTopTitres)
.ToList(),
};