namespace Webzine.Business;
using Microsoft.Extensions.Logging;
using Webzine.Business.Contracts.Dto;
using Webzine.Business.Contracts;
using Webzine.Entity;
using Webzine.Repository.Contracts;
///
/// Implémentation de .
/// Orchestre la résolution des styles, la construction de l'entité
/// et la délégation au repository.
///
public class TitreAdminService : ITitreAdminService
{
private readonly ITitreRepository titreRepository;
private readonly IArtisteRepository artisteRepository;
private readonly IStyleRepository styleRepository;
private readonly ILogger logger;
///
/// Initializes a new instance of the class.
///
/// Repository des titres.
/// Repository des artistes.
/// Repository des styles.
/// Service de journalisation.
public TitreAdminService(
ITitreRepository titreRepository,
IArtisteRepository artisteRepository,
IStyleRepository styleRepository,
ILogger logger)
{
this.titreRepository = titreRepository;
this.artisteRepository = artisteRepository;
this.styleRepository = styleRepository;
this.logger = logger;
}
///
public void CreerTitre(TitreAdminDTO commande)
{
this.logger.LogInformation(
"Création d'un nouveau titre '{Libelle}' pour l'artiste ID {IdArtiste}.",
commande.Libelle,
commande.IdArtiste);
Artiste artiste = this.artisteRepository.Find(commande.IdArtiste);
List