feat: Ajout du contrôleur Titre et des vues associées pour gérer les titres musicaux, y compris les détails, les styles, les likes et les commentaires #16 #18 #19 #20

This commit is contained in:
mirage
2026-03-05 10:29:49 +01:00
parent d13f6113df
commit a5757903ef
18 changed files with 583 additions and 71 deletions

View File

@@ -59,7 +59,20 @@ public class DataFactory
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>
@@ -90,7 +103,7 @@ public class DataFactory
/// <param name="count">Nombre de titres à générer</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>
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 random = new Random();
@@ -101,12 +114,15 @@ public class DataFactory
var randomMusic = musicItems[random.Next(musicItems.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,
IdArtiste = randomArtist.IdArtiste,
Artiste = randomArtist,
Libelle = Lorem.Words(3).ToString(),
Libelle = string.Join(" ", Lorem.Words(3)),
Chronique = Lorem.Paragraph(),
DateCreation = DateTime.Now.AddDays(-random.Next(1, 365)),
Duree = random.Next(120, 360), // 2 à 6 minutes en secondes
@@ -116,9 +132,20 @@ public class DataFactory
NbLectures = random.Next(1000, 1000000),
NbLikes = random.Next(100, 100000), // Likes entre 100 et 100 000
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());
}

View File

@@ -18,5 +18,6 @@ namespace Webzine.Entity
[Display(Name = "Libellé")]
public string Libelle { get; set; }
public List<Titre> Titres { get; set; } = new List<Titre>();
}
}

View File

@@ -63,5 +63,6 @@ namespace Webzine.Entity
public List<Commentaire> Commentaires { get; set; }
public List<Style> Styles { get; set; } = new List<Style>();
}
}
}