12-3 Ajout d'une fonction FindByVilleId à EvenementRepository
EvenementRepository
contiens 2 fonctions:
GetAll()
FindById(int id)
Aucune de ces 2 fonctions ne nous permet d'obtenir une liste d'événements correspondant à une ville. Il sera donc nécessaire de créer une fonction supplémentaire pour ce besoin.
De plus, nous pouvons anticiper et se dire que cette fonction pourrait être utilisée afin de filtrer par plus que simplement la ville (dans le but d'un filtre multiple par exemple).
Ajouter la fonction FindByVilleId
-
Modification de l'interface. Pour débuter, ajoutez à l'interface du repository la signature de la fonction.
Snowfall.Data/Repositories/IEvenementRepository.cspublic interface IEvenementRepository
{
Task<List<Evenement>> GetAll();
Task<List<Evenement>> FindByVilleId(int villeId);
Task<Evenement?> FindById(int id);
} -
Modification du repository. Vous pouvez par la suite faire
Implement missing members
à partir de la classeEvenementRepository
qui sera en erreur.Remarquez que la fonction sera placée au même endroit que vous l'avez placé dans l'interface. Dans mon cas, entre la fonction
GetAll()
etFindById
. J'ai décidé de regrouper ensemble les fonctions retournant des listes.Snowfall.Data/Repositories/EvenementRepository.cs//...
public async Task<List<Evenement>> FindByVilleId(int villeId)
{
throw new NotImplementedException();
}
//...
Implémenter la fonction FindByVilleId
Oh non! Le retour du chat mangeur de fils!
Vous devrez vous-même implémenter la fonction FindByVilleId
.
Vous devrez faire la bonne requête SQL afin de récupérer la liste d'événements correctement filtrés en fonction de ville_id
.