47 lines
1.5 KiB
C#
47 lines
1.5 KiB
C#
using Microsoft.AspNetCore.Http;
|
|
using Microsoft.AspNetCore.Mvc;
|
|
using Microsoft.Extensions.Configuration;
|
|
using Webzine.Repository.Fake;
|
|
using Webzine.WebApplication.ViewModels.Accueil;
|
|
|
|
namespace Webzine.WebApplication.Controllers
|
|
{
|
|
public class AccueilController : Microsoft.AspNetCore.Mvc.Controller
|
|
{
|
|
// Injection du logger via le constructeur
|
|
private readonly ILogger<AccueilController> _logger;
|
|
private readonly IConfiguration _configuration;
|
|
|
|
public AccueilController(ILogger<AccueilController> logger, IConfiguration configuration)
|
|
{
|
|
_logger = logger;
|
|
_configuration = configuration;
|
|
}
|
|
|
|
// GET: AccueilController
|
|
public ActionResult Index()
|
|
{
|
|
_logger.LogInformation("Arrivée sur la page d'accueil");
|
|
|
|
var derniereChronique = _configuration.GetValue<int>("Webzine:NombreDerniereChronique");
|
|
var topTitres = _configuration.GetValue<int>("Webzine:NombreDeTopTitres");
|
|
var titres = FakeDataFactory.GetTitres();
|
|
|
|
var vm = new AccueilIndexViewModel
|
|
{
|
|
DerniersTitres = titres
|
|
.OrderByDescending(t => t.DateCreation)
|
|
.Take(derniereChronique)
|
|
.ToList(),
|
|
|
|
TopTitres = titres
|
|
.OrderByDescending(t => t.NbLikes)
|
|
.Take(topTitres)
|
|
.ToList()
|
|
};
|
|
|
|
return View(vm);
|
|
}
|
|
}
|
|
}
|