#146 Les méthodes Find(id) des repository utilisent SingleOrDefault. Les méthodes find du repository sont utilisées dans les méthodes update au lieu de refaire une requête. Paginate est remplacé par Find[Model] pour correspondre au cahier des charges.

This commit is contained in:
josephine.vetu
2026-04-02 14:41:01 +02:00
parent ae80c3e14e
commit 198b716074
9 changed files with 73 additions and 65 deletions

View File

@@ -96,7 +96,7 @@ public class LocalTitreRepository : ITitreRepository
public Titre Find(int idTitre)
{
return this.dataStore.Titres
.FirstOrDefault(t => t.IdTitre == idTitre);
.SingleOrDefault(t => t.IdTitre == idTitre);
}
/// <inheritdoc/>
@@ -115,18 +115,20 @@ public class LocalTitreRepository : ITitreRepository
/// <inheritdoc/>
public void Update(Titre titre)
{
var stored = this.dataStore.Titres.FirstOrDefault(t => t.IdTitre == titre.IdTitre);
if (stored == null)
// On trouve le titre stocké pour mettre à jour ses propriétés avec la méthode Find du repository
// pour éviter la duplication de code.
Titre existingTitre = this.Find(titre.IdTitre);
if (existingTitre == null)
{
this.logger.LogWarning("Titre avec l'ID {Id} non trouvé pour mise à jour.", titre.IdTitre);
return;
}
stored.Libelle = titre.Libelle;
stored.DateCreation = titre.DateCreation;
stored.NbLectures = titre.NbLectures;
stored.NbLikes = titre.NbLikes;
stored.IdArtiste = titre.IdArtiste;
stored.Styles = titre.Styles;
existingTitre.Libelle = titre.Libelle;
existingTitre.DateCreation = titre.DateCreation;
existingTitre.NbLectures = titre.NbLectures;
existingTitre.NbLikes = titre.NbLikes;
existingTitre.IdArtiste = titre.IdArtiste;
existingTitre.Styles = titre.Styles;
}
}