//
// 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);
}
}
}