Merge pull request '#211 : Optimisation de la page d'accueil.' (#212) from j3/feat/pagination into dev
Reviewed-on: https://10.4.0.131/gitea/DI1-P4-E1/Webzine/pulls/212
This commit is contained in:
@@ -107,5 +107,19 @@
|
||||
/// </summary>
|
||||
/// <returns>Un tuple contenant l'identifiant et le libellé du titre le plus joué, ou null si aucun titre n'existe.</returns>
|
||||
(int IdTitre, string Libelle)? FindMostPlayedTitle();
|
||||
|
||||
/// <summary>
|
||||
/// Récupération des chroniques.
|
||||
/// </summary>
|
||||
/// <param name="offset">Nombre d'éléments.</param>
|
||||
/// <param name="limit">Limite d'éléments.</param>
|
||||
/// <returns>Liste des derniers titres chroniqués.</returns>
|
||||
IEnumerable<Titre> DerniereChronique(int offset, int limit);
|
||||
|
||||
/// <summary>
|
||||
/// Récupération du top titre liké.
|
||||
/// </summary>
|
||||
/// <returns>Liste de titre les plus likés.</returns>
|
||||
IEnumerable<Titre> TopTitre(int offset, int limit);
|
||||
}
|
||||
}
|
||||
@@ -409,4 +409,45 @@ public class DbTitreRepository : ITitreRepository
|
||||
throw;
|
||||
}
|
||||
}
|
||||
|
||||
/// <inheritdoc/>
|
||||
public IEnumerable<Titre> DerniereChronique(int offset, int limit)
|
||||
{
|
||||
try
|
||||
{
|
||||
this.logger.LogInformation("Récupération des dernières chroniques.");
|
||||
|
||||
return this.context.Titres
|
||||
.AsNoTracking()
|
||||
.OrderByDescending(t => t.DateCreation)
|
||||
.Paginate(offset, limit)
|
||||
.Include(t => t.Artiste);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
this.logger.LogError(ex, "Erreur lors de la recuperation des dernieres chroniques.");
|
||||
throw;
|
||||
}
|
||||
}
|
||||
|
||||
/// <inheritdoc/>
|
||||
public IEnumerable<Titre> TopTitre(int offset, int limit)
|
||||
{
|
||||
try
|
||||
{
|
||||
this.logger.LogInformation("Récupération du Top Titre.");
|
||||
var titres = this.context.Titres
|
||||
.AsNoTracking()
|
||||
.OrderByDescending(t => t.NbLikes)
|
||||
.Paginate(offset, limit)
|
||||
.Include(a => a.Artiste);
|
||||
|
||||
return titres;
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
this.logger.LogError(ex, "Erreur lors de la récupération du Top Titre.");
|
||||
throw;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -181,4 +181,39 @@ public class LocalTitreRepository : ITitreRepository
|
||||
|
||||
return titre == null ? null : (titre.IdTitre, titre.Libelle);
|
||||
}
|
||||
|
||||
/// <inheritdoc/>
|
||||
public IEnumerable<Titre> DerniereChronique(int offset, int limit)
|
||||
{
|
||||
try
|
||||
{
|
||||
return this.dataStore.Titres
|
||||
.OrderByDescending(t => t.DateCreation)
|
||||
.Paginate(offset, limit);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
this.logger.LogError(ex, "Erreur lors de la recuperation des dernieres chroniques.");
|
||||
throw;
|
||||
}
|
||||
}
|
||||
|
||||
/// <inheritdoc/>
|
||||
public IEnumerable<Titre> TopTitre(int offset, int limit)
|
||||
{
|
||||
try
|
||||
{
|
||||
this.logger.LogInformation("Récupération du Top Titre.");
|
||||
var titres = this.dataStore.Titres
|
||||
.OrderByDescending(t => t.NbLikes)
|
||||
.Paginate(offset, limit);
|
||||
|
||||
return titres;
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
this.logger.LogError(ex, "Erreur lors de la récupération du Top Titre.");
|
||||
throw;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -47,15 +47,13 @@
|
||||
var totalTitres = this.titreRepository.Count();
|
||||
var totalPages = (int)Math.Ceiling((double)totalTitres / derniereChronique);
|
||||
|
||||
var titresPagines = this.titreRepository.FindTitres(page * derniereChronique, derniereChronique);
|
||||
var topTitres = this.titreRepository.FindAll()
|
||||
.OrderByDescending(t => t.NbLikes)
|
||||
.Take(nbTopTitres);
|
||||
var titresPagines = this.titreRepository.DerniereChronique(page * derniereChronique, derniereChronique).ToList();
|
||||
var topTitres = this.titreRepository.TopTitre(nbTopTitres, nbTopTitres).ToList();
|
||||
|
||||
var vm = new AccueilIndexViewModel
|
||||
{
|
||||
DerniersTitres = titresPagines.ToList(),
|
||||
TopTitres = topTitres.ToList(),
|
||||
DerniersTitres = titresPagines,
|
||||
TopTitres = topTitres,
|
||||
Page = page,
|
||||
TotalPages = totalPages,
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user