feat: Mise à jour la mise en page et améliorer DataFactory pour générer des entités musicales avec des styles

This commit is contained in:
mirage
2026-03-04 16:00:39 +01:00
parent d13f6113df
commit cf3deb4dcb
2 changed files with 42 additions and 11 deletions

View File

@@ -59,7 +59,20 @@ public class DataFactory
public List<Artiste> GenerateArtists(int count) public List<Artiste> GenerateArtists(int count)
{ {
var artists = new List<Artiste>();
for (int i = 0; i < count; i++)
{
artists.Add(new Artiste
{
IdArtiste = i + 1,
Nom = Name.FullName(),
Biographie = Lorem.Paragraph(),
Titres = new List<Titre>()
});
}
return artists;
} }
/// <summary> /// <summary>
@@ -77,7 +90,8 @@ public class DataFactory
styles.Add(new Style styles.Add(new Style
{ {
IdStyle = i + 1, IdStyle = i + 1,
Libelle = styleNames[i] Libelle = styleNames[i],
Titres = new List<Titre>(),
}); });
} }
@@ -90,7 +104,7 @@ public class DataFactory
/// <param name="count">Nombre de titres à générer</param> /// <param name="count">Nombre de titres à générer</param>
/// <param name="artists">Liste des artistes à associer aux titres générés</param> /// <param name="artists">Liste des artistes à associer aux titres générés</param>
/// <returns>Liste de titres de musique générés</returns> /// <returns>Liste de titres de musique générés</returns>
public List<Titre> GenerateTitres(int count, List<Artiste> artists) public List<Titre> GenerateTitres(int count, List<Artiste> artists, List<Style> styles)
{ {
var titres = new List<Titre>(); var titres = new List<Titre>();
var random = new Random(); var random = new Random();
@@ -101,12 +115,15 @@ public class DataFactory
var randomMusic = musicItems[random.Next(musicItems.Count)]; var randomMusic = musicItems[random.Next(musicItems.Count)];
var randomArtist = artists[random.Next(artists.Count)]; var randomArtist = artists[random.Next(artists.Count)];
titres.Add(new Titre int numberOfStyles = random.Next(1, 4);
var selectedStyles = styles.OrderBy(x => random.Next()).Take(numberOfStyles).ToList();
var titre = new Titre
{ {
IdTitre = i + 1, IdTitre = i + 1,
IdArtiste = randomArtist.IdArtiste, IdArtiste = randomArtist.IdArtiste,
Artiste = randomArtist, Artiste = randomArtist,
Libelle = Lorem.Words(3).ToString(), Libelle = string.Join(" ", Lorem.Words(3)),
Chronique = Lorem.Paragraph(), Chronique = Lorem.Paragraph(),
DateCreation = DateTime.Now.AddDays(-random.Next(1, 365)), DateCreation = DateTime.Now.AddDays(-random.Next(1, 365)),
Duree = random.Next(120, 360), // 2 à 6 minutes en secondes Duree = random.Next(120, 360), // 2 à 6 minutes en secondes
@@ -116,9 +133,20 @@ public class DataFactory
NbLectures = random.Next(1000, 1000000), NbLectures = random.Next(1000, 1000000),
NbLikes = random.Next(100, 100000), // Likes entre 100 et 100 000 NbLikes = random.Next(100, 100000), // Likes entre 100 et 100 000
Album = $"Album {random.Next(1, 10)}", Album = $"Album {random.Next(1, 10)}",
Commentaires = new List<Commentaire>() Commentaires = new List<Commentaire>(),
}); Styles = new List<Style>(),
};
foreach (var style in selectedStyles)
{
titre.Styles.Add(style);
if (!style.Titres.Contains(titre))
{
style.Titres.Add(titre);
}
}
titres.Add(titre);
randomArtist.Titres.Add(titres.Last()); randomArtist.Titres.Add(titres.Last());
} }

View File

@@ -5,6 +5,9 @@
<meta charset="utf-8"> <meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1"> <meta name="viewport" content="width=device-width, initial-scale=1">
<title>@ViewData["Title"] - Mon Application</title> <title>@ViewData["Title"] - Mon Application</title>
<link href="/css/app.css" rel="stylesheet" />
<link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.0/css/all.min.css" rel="stylesheet" />
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.8/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-sRIl4kxILFvY47J16cr9ZwB07vP4J8+LH7qKQnuqkuIAvNWLzeN8tE5YBujZqJLB" crossorigin="anonymous">
</head> </head>
<body> <body>
<main> <main>