Déplacement du linq pour grouper les albums par titre de la vue à un ViewModel.
This commit is contained in:
@@ -0,0 +1,15 @@
|
|||||||
|
namespace Webzine.WebApplication.ViewModels.Artiste
|
||||||
|
{
|
||||||
|
using Webzine.Entity;
|
||||||
|
public class ArtisteDetailsViewModel
|
||||||
|
{
|
||||||
|
public int IdArtiste { get; set; }
|
||||||
|
public string Nom { get; set; } = string.Empty;
|
||||||
|
public string Biographie { get; set; } = string.Empty;
|
||||||
|
|
||||||
|
// On stocke les titres déjà groupés et triés
|
||||||
|
// La clé est le nom de l'album, la valeur est la liste des titres
|
||||||
|
public IEnumerable<IGrouping<string?, Titre>> AlbumsGroupes { get; set; }
|
||||||
|
= Enumerable.Empty<IGrouping<string?, Titre>>();
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
@model Webzine.Entity.Artiste
|
@model Webzine.WebApplication.ViewModels.Artiste.ArtisteDetailsViewModel;
|
||||||
|
|
||||||
@{
|
@{
|
||||||
ViewData["Title"] = "Artiste";
|
ViewData["Title"] = "Artiste";
|
||||||
@@ -8,22 +8,20 @@
|
|||||||
<div class="container">
|
<div class="container">
|
||||||
<h1>@Model.Nom</h1>
|
<h1>@Model.Nom</h1>
|
||||||
|
|
||||||
<hr class="mb-5" />
|
<hr/>
|
||||||
|
|
||||||
<p class="lead">@Model.Biographie</p>
|
<p class="lead">@Model.Biographie</p>
|
||||||
|
|
||||||
<h2 class="mt-5 mb-4">Albums</h2>
|
<h2 class="mt-5 mb-4">Albums</h2>
|
||||||
<hr class="mb-5" />
|
<hr/>
|
||||||
|
|
||||||
@* On groupe les titres par nom d'album *@
|
@if (!Model.AlbumsGroupes.Any())
|
||||||
@{
|
{
|
||||||
var albumsGroupes = Model.Titres
|
<p>Cet artiste n'a pas encore de titres répertoriés.</p>
|
||||||
.OrderBy(t => t.Libelle) // Trie les titres par ordre alphabétique au sein de chaque groupe futur
|
}
|
||||||
.GroupBy(t => t.Album) // Groupe par nom d'album
|
else
|
||||||
.OrderBy(g => g.Key); // Trie les albums par ordre alphabétique (la clé du groupe)
|
{
|
||||||
}
|
@foreach (var groupe in Model.AlbumsGroupes)
|
||||||
|
|
||||||
@foreach (var groupe in albumsGroupes)
|
|
||||||
{
|
{
|
||||||
// On récupère le premier titre du groupe pour afficher l'image de l'album
|
// On récupère le premier titre du groupe pour afficher l'image de l'album
|
||||||
var premierTitre = groupe.First();
|
var premierTitre = groupe.First();
|
||||||
@@ -70,4 +68,5 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
}
|
}
|
||||||
|
}
|
||||||
</div>
|
</div>
|
||||||
Reference in New Issue
Block a user