#175 Correction des repository : First remplacé par FirstOrDefault. Ajout de la documentation manquante. Les return Model() vides sont supprimés. La gestion d'erreurs est optimisée.

This commit is contained in:
josephine.vetu
2026-04-01 11:43:01 +02:00
parent 19b920ba4e
commit 03cc02b6f2
11 changed files with 54 additions and 110 deletions

View File

@@ -10,22 +10,21 @@ namespace Webzine.Repository
using Webzine.Repository.Contracts;
/// <summary>
/// Initialise une classe <see cref="LocalArtisteRepository"/> qui implémente l'interface <see cref="IArtisteRepository"/> pour gérer les opérations de base de données liées aux artistes.
/// Utilise <see cref="IArtisteRepository"/> en injection de dépendances. // TODO faux.
/// Initialise une classe <see cref="LocalArtisteRepository"/> qui implémente l'interface <see cref="IArtisteRepository"/>.
/// Gère les opérations liées aux artistes en utilisant une source de données locale (en mémoire).
/// </summary>
public class LocalArtisteRepository : IArtisteRepository
{
private readonly ILogger<LocalArtisteRepository> logger;
// private readonly List<Artiste> artistes; // TODO code mort
private readonly InMemoryDataStore dataStore;
/// <summary>
/// Initializes a new instance of the <see cref="LocalArtisteRepository"/> class.
/// Est liéee à une liste d'artistes en local et utilise un logger pour enregistrer les opérations effectuées sur les artistes.
/// </summary>
/// <param name="artistes">La liste des artistes à initialiser. Ne peut pas être null.</param> // TODO pas le bon paramètre
/// <param name="logger">Le logger à utiliser pour enregistrer les messages de journalisation. Ne peut pas être null.</param>
/// <param name="dataStore">Le magasin de données en mémoire.</param>
public LocalArtisteRepository(InMemoryDataStore dataStore, ILogger<LocalArtisteRepository> logger)
{
this.logger = logger;
@@ -49,11 +48,7 @@ namespace Webzine.Repository
/// <inheritdoc/>
public Artiste Find(int id)
{
var artiste = this.dataStore.Artistes.First(a => a.IdArtiste == id);
if (artiste == null)
{
return new Artiste(); // TODO ne pas retourner un objet vide, FirstOrDefault et gérer le null dans le controller
}
var artiste = this.dataStore.Artistes.SingleOrDefault(a => a.IdArtiste == id);
return artiste;
}