//
// Copyright (c) PlaceholderCompany. All rights reserved.
//
namespace Webzine.Repository
{
using Webzine.EntitiesContext;
using Webzine.Entity;
using Webzine.Entity.Fixtures;
///
/// Classe de repository pour les entités de la base de données.
///
public class DbEntityRepository
{
private readonly WebzineDbContext context;
///
/// Constructeur de DbEntityRepository.
///
/// DB context.
public DbEntityRepository(WebzineDbContext context)
{
this.context = context;
}
///
/// Seed la base de donnée à l'aide de SeedDataLocal.
///
/// Nombre d'artiste.
/// Nombre de titre.
/// Nombre min de style.
/// Nombre mac de style.
public void SeedBaseDeDonnees(
SeedDataSet? jeuDeDonnees = null,
int nbArtistes = 100,
int nbTitres = 500,
int minStyles = 15,
int maxStyles = 20)
{
if (this.context.Artistes.Any() ||
this.context.Titres.Any() ||
this.context.Styles.Any() ||
this.context.Commentaires.Any())
{
return;
}
if (jeuDeDonnees is not null)
{
this.context.Artistes.AddRange(jeuDeDonnees.Artistes);
this.context.Styles.AddRange(jeuDeDonnees.Styles);
this.context.Titres.AddRange(jeuDeDonnees.Titres);
this.context.Commentaires.AddRange(jeuDeDonnees.Commentaires);
this.context.SaveChanges();
return;
}
List artistes = SeedDataLocal.GenererListeArtiste(nbArtistes);
List