using Webzine.EntitiesContext; using Webzine.Entity; using Bogus; using System; using System.Collections.Generic; using System.Linq; namespace Webzine.Repository { /// /// Classe de service pour peupler la base de données avec des données fictives (mock data) à des fins de développement et de test. /// public class SeedMockData { private readonly WebzineDbContext _context; private readonly Random _random; /// /// Constructeur pour l'utilisation avec base de données /// public SeedMockData(WebzineDbContext context) { _context = context; _random = new Random(); } /// /// Constructeur pour l'utilisation en mémoire (sans base de données) /// public SeedMockData() { _random = new Random(); } /// /// Peuple la base de données avec des données fictives /// public void SeedDB() { // Vérifie si la base contient déjà des données if (_context.Artistes.Any()) return; // Génère toutes les données var styles = GenererStyles(18); var artistes = GenererArtistes(100); var titres = GenererTitres(artistes, 500, 550); var commentaires = GenererCommentaires(titres, 0, 5); // Associe les styles aux titres AssocierStylesAuxTitres(titres, styles); // Sauvegarde dans la base _context.SaveChanges(); } /// /// Génère des données fictives en mémoire sans base de données /// /// Tuple contenant toutes les données générées public (List