// // Copyright (c) Equipe 1 - BOBIN, MASI, NODON, VETU. All rights reserved. // namespace Webzine.WebApplication.Controllers { using Microsoft.AspNetCore.Mvc; using Webzine.Repository.Contracts; using Webzine.WebApplication.ViewModels.Recherche; /// /// Controller de la page de recherche d'artistes et de titres. /// public class RechercheController : Controller { private readonly ILogger logger; private readonly ITitreRepository titreRepository; private readonly IArtisteRepository artisteRepository; /// /// Constructeur du controller de la page de recherche d'artistes et de titres. /// /// Le logger pour enregistrer les événements. /// Le repository pour gérer les opérations sur les titres. /// Le repository pour gérer les opérations sur les artistes. public RechercheController( ILogger logger, ITitreRepository titreRepository, IArtisteRepository artisteRepository) { this.logger = logger; this.titreRepository = titreRepository; this.artisteRepository = artisteRepository; } /// /// Affichage de la page Recherche depuis le header de l'app. /// /// Nom d'artiste ou de titre. /// Page de recherche avec les r�sultats. public IActionResult Index(string mot) { // Logger la recherche. this.logger.LogInformation("Recherche artistes/titres pour le mot : {Mot}.", mot); // Recherche des titres. var titres = this.titreRepository.Search(mot); // Recherche des artistes. var artistes = this.artisteRepository.Search(mot); // Param�tres a retourner � la vue. var vm = new RechercheIndexViewModel { Mot = mot, Artistes = artistes, Titres = titres, }; return this.View(vm); } } }