#131 Fix de l'affichage des modifications car les id de tous les éléments des listes sont égaux à 0. Ajout de la génération des id dans la SeedDbLocal + les commentaires sont ajoutés aux titres directement dans le seed. Correction de documentation de méthodes.

This commit is contained in:
josephine.vetu
2026-03-27 13:24:00 +01:00
parent 712d27af65
commit 7f5bfd1bb8
7 changed files with 67 additions and 45 deletions

View File

@@ -19,7 +19,9 @@ namespace Webzine.Entity.Fixtures
/// <returns>Liste d'artiste.</returns>
public static List<Artiste> GenererListeArtiste(int nombre)
{
int idStart = 1;
Faker<Artiste> artistes = new Faker<Artiste>("fr")
.RuleFor(a => a.IdArtiste, f => f.IndexFaker + idStart) // Créé les id des artistes de manière incrémentale
.RuleFor(a => a.Nom, f => f.Person.FullName)
.RuleFor(a => a.Biographie, f => f.Lorem.Paragraph(2));
@@ -27,21 +29,27 @@ namespace Webzine.Entity.Fixtures
}
/// <summary>
/// Generer une liste de titre.
/// Generer une liste de titres.
/// </summary>
/// <param name="count">Nombre de titre à créer.</param>
/// <param name="artistes">Liste d'artiste.</param>
/// <param name="styles">Liste de style.</param>
/// <returns>Liste de titre.</returns>
/// <param name="count">Nombre de titres à créer.</param>
/// <param name="artistes">Liste d'artistes.</param>
/// <param name="styles">Liste de styles.</param>
/// <param name="albums">Liste d'albums.</param>
/// <param name="commentaires">Liste de commentaires.</param>
/// <returns>Liste de titres.</returns>
public static List<Titre> GenererListeTitre(
int count,
List<Artiste> artistes,
List<Style> styles,
List<string> albums)
List<string> albums,
List<Commentaire> commentaires
)
{
Random random = new Random();
int idStart = 1;
Faker<Titre> faker = new Faker<Titre>("fr")
.RuleFor(a => a.IdTitre, f => f.IndexFaker + idStart)
.RuleFor(t => t.Libelle, f => f.Lorem.Sentence(3).Replace(".", string.Empty))
.RuleFor(t => t.Chronique, f => f.Lorem.Paragraphs(3))
.RuleFor(t => t.DateCreation, f => DateTime.SpecifyKind(f.Date.Recent(120), DateTimeKind.Utc))
@@ -52,8 +60,8 @@ namespace Webzine.Entity.Fixtures
.RuleFor(t => t.NbLectures, f => f.Random.Int(0, 5000))
.RuleFor(t => t.NbLikes, f => f.Random.Int(0, 1000))
.RuleFor(t => t.Album, f => f.PickRandom(albums))
.RuleFor(t => t.Artiste, f => f.PickRandom(artistes));
.RuleFor(t => t.Artiste, f => f.PickRandom(artistes))
.RuleFor(t => t.Commentaires, f => commentaires ?? new List<Commentaire>());
List<Titre> titres = faker.Generate(count);
foreach (Titre titre in titres)
@@ -72,10 +80,12 @@ namespace Webzine.Entity.Fixtures
}
/// <summary>
/// Générer une liste de style pour seeder la base
/// Générer une liste de styles pour seeder la base
/// de données.
/// </summary>
/// <returns>Liste de style.</returns>
/// <param name="minCount">Le nombre minimum de styles pouvant être créés.</params>
/// <param name="maxCount">Le nombre maximun de styles pouvant être créés.</params>
/// <returns>Liste de styles.</returns>
public static List<Style> GenererListeStyle(int minCount = 15, int maxCount = 20)
{
List<string> libelles = new List<string>
@@ -107,26 +117,30 @@ namespace Webzine.Entity.Fixtures
return libelles
.Take(count)
.Select(libelle => new Style
.Select((libelle, index) => new Style
{
IdStyle = index + 1,
Libelle = libelle,
})
.ToList();
}
/// <summary>
/// Seeder pour la base de données.
/// Générer une liste de commentaires pour seeder la base
/// de données.
/// </summary>
/// <param name="titre">Titre.</param>
/// <param name="min">Min.</param>
/// <param name="max">Max.</param>
/// <param name="min">Le nombre minimum de commentaires pouvant être créés. La valeur par défaut est 0.</params>
/// <param name="max">Le nombre maximun de commentaires pouvant être créés. La valeur par défaut est 5.</params>
/// <returns>Liste de commentaire.</returns>
public static List<Commentaire> GenererListeCommentaire(Titre titre, int min = 0, int max = 5)
{
Random random = new Random();
int count = random.Next(min, max + 1);
int idStart = 1;
Faker<Commentaire> faker = new Faker<Commentaire>("fr")
.RuleFor(a => a.IdCommentaire, f => f.IndexFaker + idStart)
.RuleFor(c => c.Auteur, f => f.Internet.UserName())
.RuleFor(c => c.Contenu, f => f.Lorem.Sentences(2))
.RuleFor(c => c.DateCreation, f => DateTime.SpecifyKind(f.Date.Recent(60), DateTimeKind.Utc))
@@ -136,6 +150,12 @@ namespace Webzine.Entity.Fixtures
return faker.Generate(count);
}
/// <summary>
/// Générer une liste d'albums pour seeder la base
/// de données.
/// </summary>
/// <param name="nombre">Le nombre d'albums à générer.</param>
/// <returns>Liste d'albums.</returns>
public static List<string> GenererListeAlbums(int nombre)
{
Faker faker = new Faker("fr");