namespace Webzine.Repository.Contracts { using Webzine.Entity; /// /// Défini une interface pour gérer les opérations des artistes dans la source de données. /// public interface IArtisteRepository { /// /// Ajoute un nouvel artiste. /// /// L'artiste à ajouter à la collection. Ne peut pas être null. void Add(Artiste artiste); /// /// Supprime un artiste. /// /// L'artiste à supprimer. void Delete(Artiste artiste); /// /// Récupère un artiste par son identifiant unique. Si aucun artiste n'est trouvé, retourne null. /// /// L'identifiant de l'artiste. /// L'artiste trouvé ou null. Artiste Find(int id); /// /// Récupère un artiste par son nom. Si aucun artiste n'est trouvé, retourne null. /// /// Le nom de l'artiste. /// L'artiste recherché ou null. Artiste FindByName(string name); /// /// Récupère tous les artistes disponibles dans la collection. Si aucun artiste n'est trouvé, retourne une collection vide. /// /// Retourne une collection d'artistes. IEnumerable FindAll(); /// /// Met à jour les informations d'un artiste existant dans la collection. /// /// L'artiste à mettre à jour. void Update(Artiste artiste); /// /// Récupérer une liste d'artiste à partir d'une recherche. /// /// Nom de l'artiste. /// IEnumarble. qui contient la chaine de caractere. IEnumerable Search(string nom); /// /// Récupère le nombre total d'artistes dans la collection. /// /// Le nombre total d'artistes. int Count(); /// /// Récupère le nombre d'artistes correspondant au prédicat fourni. /// /// Le prédicat de filtrage. /// Le nombre d'artistes correspondants. int Count(Func predicate); } }