add TODO
This commit is contained in:
@@ -4,7 +4,7 @@ namespace Webzine.Repository.Contracts
|
|||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Défini une interface <see cref="IArtisteRepository"/> pour gérer les opérations de base de données liées aux artistes.
|
/// Défini une interface <see cref="IArtisteRepository"/> pour gérer les opérations de base de données liées aux artistes.
|
||||||
/// </summary>
|
/// </summary> // TODO interface n'est pas que liée à la bdd, elle est aussi utilisée pour la gestion en mémoire
|
||||||
public interface IArtisteRepository
|
public interface IArtisteRepository
|
||||||
{
|
{
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
|||||||
@@ -13,7 +13,7 @@ namespace Webzine.Repository
|
|||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Initialise une classe <see cref="DbArtisteRepository"/> qui implémente l'interface <see cref="IArtisteRepository"/> pour gérer les opérations de base de données liées aux artistes.
|
/// Initialise une classe <see cref="DbArtisteRepository"/> 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.
|
/// Utilise <see cref="IArtisteRepository"/> en injection de dépendances. // TODO commentaire faux.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public class DbArtisteRepository : IArtisteRepository
|
public class DbArtisteRepository : IArtisteRepository
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -93,10 +93,10 @@ public class DbStyleRepository : IStyleRepository
|
|||||||
{
|
{
|
||||||
this.logger.LogDebug("Recherche du style avec l'ID: {Id}", id);
|
this.logger.LogDebug("Recherche du style avec l'ID: {Id}", id);
|
||||||
|
|
||||||
if (id <= 0)
|
if (id <= 0) // TODO à supprimer, c'est au controller de vérifier la validité de l'id
|
||||||
{
|
{
|
||||||
this.logger.LogWarning("Tentative de recherche d'un style avec un Id invalide: {Id}", id);
|
this.logger.LogWarning("Tentative de recherche d'un style avec un Id invalide: {Id}", id);
|
||||||
return new Style();
|
return new Style(); // TODO pas de retour d'objet vide
|
||||||
}
|
}
|
||||||
|
|
||||||
this.logger.LogDebug("Préparation de la requête avec inclusion des titres");
|
this.logger.LogDebug("Préparation de la requête avec inclusion des titres");
|
||||||
|
|||||||
@@ -33,7 +33,7 @@ public class DbTitreRepository : ITitreRepository
|
|||||||
try
|
try
|
||||||
{
|
{
|
||||||
this.logger.LogInformation("Ajout d'un nouveau titre: {Libelle}", titre.Libelle);
|
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.logger.LogDebug("Début de l'ajout du titre en base de données"); // TODO trop de logs
|
||||||
|
|
||||||
this.context.Titres.Add(titre);
|
this.context.Titres.Add(titre);
|
||||||
this.context.SaveChanges();
|
this.context.SaveChanges();
|
||||||
@@ -289,7 +289,7 @@ public class DbTitreRepository : ITitreRepository
|
|||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
this.logger.LogDebug("Récupération de tous les titres");
|
this.logger.LogDebug("Récupération de tous les titres"); // TODO trop de logs
|
||||||
this.logger.LogDebug("Préparation de la requête avec les inclusions Artiste et Styles");
|
this.logger.LogDebug("Préparation de la requête avec les inclusions Artiste et Styles");
|
||||||
|
|
||||||
var titres = this.context.Titres
|
var titres = this.context.Titres
|
||||||
|
|||||||
@@ -11,20 +11,20 @@ namespace Webzine.Repository
|
|||||||
|
|
||||||
/// <summary>
|
/// <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.
|
/// 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.
|
/// Utilise <see cref="IArtisteRepository"/> en injection de dépendances. // TODO faux.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public class LocalArtisteRepository : IArtisteRepository
|
public class LocalArtisteRepository : IArtisteRepository
|
||||||
{
|
{
|
||||||
private readonly ILogger<LocalArtisteRepository> logger;
|
private readonly ILogger<LocalArtisteRepository> logger;
|
||||||
|
|
||||||
// private readonly List<Artiste> artistes;
|
// private readonly List<Artiste> artistes; // TODO code mort
|
||||||
private readonly InMemoryDataStore dataStore;
|
private readonly InMemoryDataStore dataStore;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Initializes a new instance of the <see cref="LocalArtisteRepository"/> class.
|
/// 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.
|
/// Est liéee à une liste d'artistes en local et utilise un logger pour enregistrer les opérations effectuées sur les artistes.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="artistes">La liste des artistes à initialiser. Ne peut pas être null.</param>
|
/// <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="logger">Le logger à utiliser pour enregistrer les messages de journalisation. Ne peut pas être null.</param>
|
||||||
public LocalArtisteRepository(InMemoryDataStore dataStore, ILogger<LocalArtisteRepository> logger)
|
public LocalArtisteRepository(InMemoryDataStore dataStore, ILogger<LocalArtisteRepository> logger)
|
||||||
{
|
{
|
||||||
@@ -37,7 +37,7 @@ namespace Webzine.Repository
|
|||||||
/// <inheritdoc/>
|
/// <inheritdoc/>
|
||||||
public void Add(Artiste artiste)
|
public void Add(Artiste artiste)
|
||||||
{
|
{
|
||||||
throw new NotSupportedException("Mode Local");
|
throw new NotSupportedException("Mode Local"); // TODO à implémenter
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <inheritdoc/>
|
/// <inheritdoc/>
|
||||||
@@ -52,7 +52,7 @@ namespace Webzine.Repository
|
|||||||
var artiste = this.dataStore.Artistes.First(a => a.IdArtiste == id);
|
var artiste = this.dataStore.Artistes.First(a => a.IdArtiste == id);
|
||||||
if (artiste == null)
|
if (artiste == null)
|
||||||
{
|
{
|
||||||
return new Artiste();
|
return new Artiste(); // TODO ne pas retourner un objet vide, FirstOrDefault et gérer le null dans le controller
|
||||||
}
|
}
|
||||||
|
|
||||||
return artiste;
|
return artiste;
|
||||||
|
|||||||
@@ -38,7 +38,7 @@ namespace Webzine.Repository
|
|||||||
/// <inheritdoc/>
|
/// <inheritdoc/>
|
||||||
public void Add(Commentaire commentaire)
|
public void Add(Commentaire commentaire)
|
||||||
{
|
{
|
||||||
throw new NotSupportedException("Mode Local");
|
throw new NotSupportedException("Mode Local"); // TODO à implémenter
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <inheritdoc/>
|
/// <inheritdoc/>
|
||||||
|
|||||||
@@ -34,7 +34,9 @@ public class LocalTitreRepository : ITitreRepository
|
|||||||
/// <inheritdoc/>
|
/// <inheritdoc/>
|
||||||
public int Count()
|
public int Count()
|
||||||
{
|
{
|
||||||
var count = this.dataStore.Titres.Count();
|
var count = this.dataStore.Titres.Count(); // TODO une seule ligne, et attention car les deux méthodes s'appelent pareil,
|
||||||
|
|
||||||
|
// il faut faire attention à ne pas confondre avec la méthode Count() de l'interface ITitreRepository
|
||||||
return count;
|
return count;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -62,14 +64,14 @@ public class LocalTitreRepository : ITitreRepository
|
|||||||
/// <inheritdoc/>
|
/// <inheritdoc/>
|
||||||
public void IncrementNbLikes(Titre titre)
|
public void IncrementNbLikes(Titre titre)
|
||||||
{
|
{
|
||||||
titre.NbLikes++;
|
titre.NbLikes++; // TODO rien n'est enregistré
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <inheritdoc/>
|
/// <inheritdoc/>
|
||||||
public IEnumerable<Titre> Search(string mot)
|
public IEnumerable<Titre> Search(string mot)
|
||||||
{
|
{
|
||||||
return this.dataStore.Titres
|
return this.dataStore.Titres
|
||||||
.Where(t => t.Libelle != null && t.Libelle.Contains(mot));
|
.Where(t => t.Libelle != null && t.Libelle.Contains(mot)); // TODO attention au null, et à la casse, et à l'indexation pour les performances
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <inheritdoc/>
|
/// <inheritdoc/>
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ using Webzine.Repository.Contracts;
|
|||||||
using Webzine.WebApplication.Areas.Administration.ViewModels;
|
using Webzine.WebApplication.Areas.Administration.ViewModels;
|
||||||
|
|
||||||
[Area("Administration")]
|
[Area("Administration")]
|
||||||
public class DashboardController : Controller
|
public class DashboardController : Controller // TODO à refaire
|
||||||
{
|
{
|
||||||
private readonly ILogger<DashboardController> logger;
|
private readonly ILogger<DashboardController> logger;
|
||||||
private readonly IStyleRepository styleRepository;
|
private readonly IStyleRepository styleRepository;
|
||||||
|
|||||||
@@ -11,7 +11,7 @@ namespace Webzine.WebApplication.Controllers
|
|||||||
using Webzine.WebApplication.ViewModels.Titre;
|
using Webzine.WebApplication.ViewModels.Titre;
|
||||||
|
|
||||||
[Route("recherche")]
|
[Route("recherche")]
|
||||||
public class RechercheController : Controller
|
public class RechercheController : Controller // TODO à modifier intégralement et à commenter
|
||||||
{
|
{
|
||||||
private readonly ILogger<RechercheController> logger;
|
private readonly ILogger<RechercheController> logger;
|
||||||
private readonly ITitreRepository titreRepository;
|
private readonly ITitreRepository titreRepository;
|
||||||
@@ -46,7 +46,7 @@ namespace Webzine.WebApplication.Controllers
|
|||||||
.Where(a => a != null
|
.Where(a => a != null
|
||||||
&& !string.IsNullOrWhiteSpace(a.Nom)
|
&& !string.IsNullOrWhiteSpace(a.Nom)
|
||||||
&& !string.IsNullOrWhiteSpace(mot)
|
&& !string.IsNullOrWhiteSpace(mot)
|
||||||
&& a.Nom.Contains(mot, StringComparison.OrdinalIgnoreCase))
|
&& a.Nom.Contains(mot, StringComparison.OrdinalIgnoreCase)) // TODO OrdinalIgnoreCase pas bien
|
||||||
.DistinctBy(a => a!.IdArtiste)
|
.DistinctBy(a => a!.IdArtiste)
|
||||||
.OrderBy(a => a!.Nom)
|
.OrderBy(a => a!.Nom)
|
||||||
.Select(a => new RechercheArtisteItem
|
.Select(a => new RechercheArtisteItem
|
||||||
|
|||||||
@@ -82,7 +82,7 @@ namespace Webzine.WebApplication.Controllers
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="style">Nom du style musical.</param>
|
/// <param name="style">Nom du style musical.</param>
|
||||||
/// <returns>Vue contenant la liste filtree.</returns>
|
/// <returns>Vue contenant la liste filtree.</returns>
|
||||||
[HttpGet("style/{style}")]
|
[HttpGet("style/{style}")] // TODO pas de route écrite en dur dans le controller
|
||||||
public IActionResult Style(string style)
|
public IActionResult Style(string style)
|
||||||
{
|
{
|
||||||
this.logger.LogInformation("Recherche des titres pour le style : {Style}.", style);
|
this.logger.LogInformation("Recherche des titres pour le style : {Style}.", style);
|
||||||
|
|||||||
@@ -2,10 +2,8 @@
|
|||||||
#pragma warning disable SA1200
|
#pragma warning disable SA1200
|
||||||
|
|
||||||
using Microsoft.EntityFrameworkCore;
|
using Microsoft.EntityFrameworkCore;
|
||||||
|
|
||||||
using NLog;
|
using NLog;
|
||||||
using NLog.Web;
|
using NLog.Web;
|
||||||
|
|
||||||
using Webzine.EntitiesContext;
|
using Webzine.EntitiesContext;
|
||||||
using Webzine.Entity;
|
using Webzine.Entity;
|
||||||
using Webzine.Entity.Fixtures;
|
using Webzine.Entity.Fixtures;
|
||||||
|
|||||||
Reference in New Issue
Block a user