#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 DbStyleRepository : IStyleRepository
var style = this.context.Styles
.AsNoTracking()
.Include(s => s.Titres)
.FirstOrDefault(s => s.IdStyle == id);
.SingleOrDefault(s => s.IdStyle == id);
if (style == null)
{
@@ -124,10 +124,9 @@ public class DbStyleRepository : IStyleRepository
var styles = this.context.Styles
.AsNoTracking()
.OrderBy(s => s.Libelle)
.ToList();
.OrderBy(s => s.Libelle);
this.logger.LogDebug("{Count} styles récupérés", styles.Count);
this.logger.LogDebug("La liste de styles a été récupérée.");
return styles;
}
catch (Exception ex)
@@ -143,15 +142,15 @@ public class DbStyleRepository : IStyleRepository
try
{
this.logger.LogInformation("Mise à jour du style avec l'ID: {IdStyle}", style.IdStyle);
Style existingStyle = this.Find(style.IdStyle); // Vérifie que le style existe avant de tenter de le mettre à jour
var existingStyle = this.context.Styles.Find(style.IdStyle);
if (existingStyle == null)
{
this.logger.LogWarning("Style avec l'ID {IdStyle} non trouvé pour la mise à jour", style.IdStyle);
throw new InvalidOperationException($"Style avec l'ID {style.IdStyle} non trouvé.");
this.logger.LogWarning("Style avec l'ID {IdStyle} non trouvé pour l'update.", style.IdStyle);
throw new InvalidOperationException($"Style avec l'ID {style.IdStyle} non trouvé pour la mise à jour.");
}
existingStyle.Libelle = style.Libelle;
this.context.Styles.Update(style);
this.context.SaveChanges();
this.logger.LogDebug("Style mis à jour avec succès: {IdStyle}", style.IdStyle);