Merge branch 'dev' into j3/TODO_erreurs

# Conflicts:
#	Webzine.Repository/DbTitreRepository.cs
This commit is contained in:
mirage
2026-04-02 16:02:36 +02:00
7 changed files with 280 additions and 11 deletions

View File

@@ -33,6 +33,7 @@ public class DbTitreRepository : ITitreRepository
try
{
this.logger.LogInformation("Ajout d'un nouveau titre: {Libelle}", titre.Libelle);
this.logger.LogDebug("Début de l'ajout du titre en base de données");
this.context.Titres.Add(titre);
this.context.SaveChanges();
@@ -56,7 +57,8 @@ public class DbTitreRepository : ITitreRepository
{
try
{
var count = Enumerable.Count(this.context.Titres);
this.logger.LogDebug("Comptage des titres en base de données");
var count = this.context.Titres.Count();
this.logger.LogDebug("Nombre total de titres: {Count}", count);
return count;
}
@@ -73,6 +75,7 @@ public class DbTitreRepository : ITitreRepository
try
{
this.logger.LogInformation("Suppression du titre avec l'ID: {IdTitre}", titre.IdTitre);
this.logger.LogDebug("Début de la suppression du titre en base de données");
this.context.Titres.Remove(titre);
this.context.SaveChanges();
@@ -97,6 +100,7 @@ public class DbTitreRepository : ITitreRepository
try
{
this.logger.LogDebug("Recherche des titres avec offset: {Offset}, limit: {Limit}", offset, limit);
this.logger.LogDebug("Préparation de la requête avec les inclusions Artiste et Styles");
var titres = this.context.Titres
.Include(t => t.Artiste)
@@ -104,9 +108,9 @@ public class DbTitreRepository : ITitreRepository
.OrderBy(t => t.Libelle)
.Skip(offset)
.Take(limit)
.AsNoTracking();
.ToList();
this.logger.LogDebug("La liste de titres a été récupérée.");
this.logger.LogDebug("{Count} titres trouvés", titres.Count);
return titres;
}
catch (Exception ex)
@@ -122,10 +126,12 @@ public class DbTitreRepository : ITitreRepository
try
{
this.logger.LogInformation("Incrémentation du nombre de lectures pour le titre ID: {IdTitre}", titre.IdTitre);
this.logger.LogDebug("Recherche du titre en base de données");
var existingTitre = this.context.Titres.Find(titre.IdTitre);
if (existingTitre != null)
{
this.logger.LogDebug("Titre trouvé, incrémentation du compteur de lectures");
existingTitre.NbLectures++;
this.context.SaveChanges();
this.logger.LogDebug("Nouveau nombre de lectures: {NbLectures}", existingTitre.NbLectures);
@@ -153,14 +159,20 @@ public class DbTitreRepository : ITitreRepository
try
{
this.logger.LogInformation("Incrémentation du nombre de likes pour le titre ID: {IdTitre}", titre.IdTitre);
this.logger.LogDebug("Recherche du titre en base de données");
var existingTitre = this.context.Titres.Find(titre.IdTitre);
if (existingTitre != null)
{
this.logger.LogDebug("Titre trouvé, incrémentation du compteur de likes");
existingTitre.NbLikes++;
this.context.SaveChanges();
this.logger.LogDebug("Nouveau nombre de likes: {NbLikes}", existingTitre.NbLikes);
}
else
{
this.logger.LogWarning("Titre avec l'ID {IdTitre} non trouvé pour l'incrémentation des likes", titre.IdTitre);
}
}
catch (DbUpdateException ex)
{
@@ -221,15 +233,17 @@ public class DbTitreRepository : ITitreRepository
try
{
this.logger.LogInformation("Recherche des titres avec le mot-clé: {Mot}", mot);
this.logger.LogDebug("Préparation de la requête de recherche avec les inclusions");
var titres = this.context.Titres
.Include(t => t.Artiste)
.Include(t => t.Styles)
.Where(t => t.Libelle.ToLower().Contains(mot.ToLower()))
.OrderBy(t => t.Libelle)
.AsNoTracking();
.AsNoTracking()
.ToList();
this.logger.LogDebug("La liste de titres a été récupérée.");
this.logger.LogDebug("{Count} titres trouvés correspondant à '{Mot}'", titres.Count, mot);
return titres;
}
catch (Exception ex)
@@ -271,14 +285,17 @@ public class DbTitreRepository : ITitreRepository
{
try
{
this.logger.LogDebug("Récupération de tous les titres");
this.logger.LogDebug("Préparation de la requête avec les inclusions Artiste et Styles");
var titres = this.context.Titres
.Include(t => t.Artiste)
.Include(t => t.Styles)
.Include(t => t.Commentaires)
.OrderBy(t => t.Libelle)
.AsNoTracking();
.ToList();
this.logger.LogDebug("La liste de titres a été récupérée avec FindAll.");
this.logger.LogDebug("{Count} titres récupérés", titres.Count);
return titres;
}
catch (Exception ex)
@@ -294,15 +311,16 @@ public class DbTitreRepository : ITitreRepository
try
{
this.logger.LogInformation("Recherche des titres par style: {Libelle}", libelle);
this.logger.LogDebug("Préparation de la requête de recherche par style");
var titres = this.context.Titres
.Include(t => t.Artiste)
.Include(t => t.Styles)
.Where(t => t.Styles.Any(s => s.Libelle.ToLower() == libelle.ToLower()))
.OrderBy(t => t.Libelle)
.AsNoTracking();
.ToList();
this.logger.LogDebug("La liste de titres a été récupérée pour le style '{Libelle}'", libelle);
this.logger.LogDebug("{Count} titres trouvés pour le style '{Libelle}'", titres.Count, libelle);
return titres;
}
catch (Exception ex)