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);
}
}