diff --git a/Webzine.WebApplication/ViewModels/Artiste/ArtisteDetailsViewModel.cs b/Webzine.WebApplication/ViewModels/Artiste/ArtisteDetailsViewModel.cs new file mode 100644 index 0000000..2a53603 --- /dev/null +++ b/Webzine.WebApplication/ViewModels/Artiste/ArtisteDetailsViewModel.cs @@ -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> AlbumsGroupes { get; set; } + = Enumerable.Empty>(); + } +} diff --git a/Webzine.WebApplication/Views/Artiste/Index.cshtml b/Webzine.WebApplication/Views/Artiste/Index.cshtml index f719270..3b4cdf9 100644 --- a/Webzine.WebApplication/Views/Artiste/Index.cshtml +++ b/Webzine.WebApplication/Views/Artiste/Index.cshtml @@ -1,4 +1,4 @@ -@model Webzine.Entity.Artiste +@model Webzine.WebApplication.ViewModels.Artiste.ArtisteDetailsViewModel; @{ ViewData["Title"] = "Artiste"; @@ -8,22 +8,20 @@

@Model.Nom

-
+

@Model.Biographie

Albums

-
+
- @* On groupe les titres par nom d'album *@ - @{ - var albumsGroupes = Model.Titres - .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 - .OrderBy(g => g.Key); // Trie les albums par ordre alphabétique (la clé du groupe) - } - - @foreach (var groupe in albumsGroupes) + @if (!Model.AlbumsGroupes.Any()) +{ +

Cet artiste n'a pas encore de titres répertoriés.

+} +else +{ + @foreach (var groupe in Model.AlbumsGroupes) { // On récupère le premier titre du groupe pour afficher l'image de l'album var premierTitre = groupe.First(); @@ -70,4 +68,5 @@
} +} \ No newline at end of file