Rebase de j3/feat/pagination dans j3/seed_spotify.

This commit is contained in:
Loic Masi
2026-04-03 16:49:56 +02:00
29 changed files with 391 additions and 73 deletions

View File

@@ -14,18 +14,22 @@ public class StyleController : Controller
{
private readonly ILogger<StyleController> logger;
private readonly IStyleRepository styleRepository;
private readonly IConfiguration configuration;
/// <summary>
/// Initializes a new instance of the <see cref="StyleController"/> class.
/// </summary>
/// <param name="logger">Service de journalisation injecte.</param>
/// <param name="styleRepository">Repository des styles injecte.</param>
/// <param name="configuration">Service de configuration injecte pour acceder aux parametres de configuration.</param>
public StyleController(
ILogger<StyleController> logger,
IStyleRepository styleRepository)
IStyleRepository styleRepository,
IConfiguration configuration)
{
this.logger = logger;
this.styleRepository = styleRepository;
this.configuration = configuration;
this.logger.LogInformation("Initialisation du controleur StyleController.");
}
@@ -33,12 +37,22 @@ public class StyleController : Controller
/// <summary>
/// Affiche la liste des styles dans la vue Index.
/// </summary>
/// <param name="page">Le numero de page pour la pagination des styles (par defaut a 0).</param>
/// <returns>La vue Index avec la liste des styles.</returns>
public IActionResult Index()
public IActionResult Index(int page = 0)
{
IEnumerable<Style> listeStyles = this.styleRepository.FindAll().Take(10);
int styles_par_page = this.configuration.GetValue<int>("Webzine:NombreDeLignesAdministration");
IEnumerable<Style> listeStyles = this.styleRepository.FindStyles(page * styles_par_page, styles_par_page);
return this.View(listeStyles);
int totalStyles = this.styleRepository.Count();
var model = new StyleIndexViewModel
{
Styles = listeStyles,
Page = page,
TotalPages = (int)Math.Ceiling((double)totalStyles / styles_par_page),
};
return this.View(model);
}
/// <summary>