namespace Webzine.Repository { using Microsoft.EntityFrameworkCore; using Webzine.EntitiesContext; using Webzine.Entity; using Webzine.Repository.Contracts; /// /// Initialise une classe qui implémente l'interface pour gérer les opérations de base de données liées aux artistes. /// Utilise en injection de dépendances. /// public class LocalArtisteRepository : IArtisteRepository { /// /// Contexte de la base de données utilisé pour accéder aux entités et effectuer des opérations de persistance. Injecté via le constructeur. /// private WebzineDbContext _context; /// /// Initializes a new instance of the class. /// /// Le contexte de base de données à utiliser pour accéder aux entités et effectuer des opérations de /// persistance. Ne peut pas être null. public LocalArtisteRepository(WebzineDbContext context) { this._context = context; } /// /// Méthode pour ajouter un nouvel artiste à la base de données. /// /// L'artiste à ajouter. Ne peut pas être null. public void Add(Artiste artiste) { this._context.Artistes.Add(artiste); this._context.SaveChanges(); } /// /// Méthode pour supprimer un artiste de la base de données. /// /// L'artiste à supprimer. public void Delete(Artiste artiste) { this._context.Artistes.Remove(artiste); this._context.SaveChanges(); } /// /// Récupère un artiste avec son id. /// /// L'id de l'artiste. /// L'artiste correspondant à l'identifiant fourni, ou null si aucun artiste trouvé. public Artiste Find(int id) { return this._context.Artistes .Include(a => a.Titres) .FirstOrDefault(a => a.IdArtiste == id); } /// /// Récupère un artiste avec son nom. /// /// Nom de l'artiste. /// L'artiste correspondant à l'identifiant fourni, ou null si aucun artiste trouvé. public Artiste FindByName(string nom) { return this._context.Artistes .Include(a => a.Titres) .FirstOrDefault(a => a.Nom == nom); } /// /// Retourne tous les artistes présents dans la base de données. /// /// La liste des artistes. public IEnumerable FindAll() { return this._context.Artistes.ToList(); } /// /// Mets à jour un artiste existant dans la base de données avec les nouvelles informations fournies dans l'objet artiste. /// /// L'artiste à mettre à jour. public void Update(Artiste artiste) { this._context.Artistes.Update(artiste); this._context.SaveChanges(); } } }