using Bogus; using Faker; using System; using System.Collections.Generic; using Webzine.Entity; namespace Webzine.Repository.Fake { /// /// Classe de fabrique pour générer des données factices (fake data) pour les entités Artiste et Titre. /// public static class FakeDataFactory { //https://cdn-images.dzcdn.net/images/cover/311bba0fc112d15f72c8b5a65f0456c1/1900x1900-000000-80-0-0.jpg", /// /// Génère une liste d'artistes avec des données factices, incluant des titres associés à chaque artiste. /// /// Le nombre d'artistes à générer. Par défaut, 10 artistes seront générés. /// Une liste d'objets Artiste avec des titres associés, générés de manière aléatoire. public static List GetArtistes(int count = 10) { var artistes = new List(); for (int i = 1; i <= count; i++) { artistes.Add(new Artiste { IdArtiste = i, Nom = Name.FullName(), Biographie = Lorem.Paragraph(), Titres = new List() }); } return artistes; } /// /// Génère une liste de titres avec des données factices, en associant chaque titre à un artiste existant. /// /// Le nombre de titres à générer. Par défaut, 40 titres seront générés. /// Une liste d'objets Titre avec des données factices, associés à des artistes générés de manière aléatoire. public static List GetTitres(int count = 40) { var artistes = GetArtistes(); var titres = new List(); for (int i = 1; i <= count; i++) { var artiste = artistes[RandomNumber.Next(0, artistes.Count - 1)]; var titre = new Titre { IdTitre = i, IdArtiste = artiste.IdArtiste, Artiste = artiste, Libelle = Lorem.Sentence(3), Chronique = Lorem.Paragraph(), DateCreation = DateTime.Now.AddDays(-RandomNumber.Next(1, 100)), DateSortie = DateTime.Now.AddYears(-RandomNumber.Next(1, 20)), Duree = RandomNumber.Next(120, 420), UrlJaquette = "https://picsum.photos/300", UrlEcoute = Internet.Url(), NbLectures = RandomNumber.Next(0, 500), NbLikes = RandomNumber.Next(0, 200), Album = Lorem.Sentence(2), Commentaires = new List() }; titres.Add(titre); artiste.Titres.Add(titre); } return titres; } } }