/// <summary> /// Méthode permettant d'aller chercher sur l'API de TmDb les informations sur les films. /// </summary> /// <param name="moviesInfomration"></param> /// <returns></returns> private async Task <List <MovieModel> > GetMovieDbInformation(IEnumerable <MovieInformation> moviesInfomration) { List <MovieModel> returnMovieModels = new List <MovieModel>(); foreach (MovieInformation movieInformation in moviesInfomration) { SearchMovie movieSelected; // Pour palier le limit rate du site j'attend 1 sec avant de refaire une recherche. await Task.Delay(1000); if (movieInformation.Annee != "Inconnu") { SearchContainer <SearchMovie> temp = await ClientTmDb.SearchMovieAsync(movieInformation.Titre, includeAdult : true, year : Convert.ToInt32(movieInformation.Annee)); movieSelected = GetTheGoodMovie(temp, movieInformation); } else { SearchContainer <SearchMovie> temp = await ClientTmDb.SearchMovieAsync(movieInformation.Titre, includeAdult : true); movieSelected = GetTheGoodMovie(temp, movieInformation); } Movie movieDb; if (movieSelected == null) { //Log.Information("Aucune information TmDb trouvé pour " + movieInformation.Titre); movieDb = new Movie { Title = movieInformation.Titre, Overview = "Aucune information de trouvé sur TmDb" }; } else { //movieDb = await ClientTmDb.GetMovieAsync(movieSelected.Id); // Récupération des infos avec les vidéos. movieDb = await ClientTmDb.GetMovieAsync(movieSelected.Id, MovieMethods.Videos); } returnMovieModels.Add(new MovieModel(Guid.NewGuid()) { MovieInformation = movieInformation, MovieTmDb = movieDb, DateAdded = GetDateFileCreated(movieInformation.PathFile) }); Log.Logger.Information("Ajout de " + movieDb.OriginalTitle); } return(returnMovieModels); }
/// <summary> /// Permet de change la video par rapport à son ID, en donnant /// l'ID de TheMovieDatabase. /// </summary> /// <param name="id"></param> /// <param name="idVideoTmDb"></param> /// <returns></returns> public async Task <MovieModel> ChangeVideo(Guid id, int idVideoTmDb) { MovieModel videoToChange = GetMovie(id); if (videoToChange == null) { return(null); } Movie videoTmDb = await ClientTmDb.GetMovieAsync(idVideoTmDb); lock (Lock) { videoToChange.MovieTmDb = videoTmDb; Storage.SaveMoviesModels(_movieModelsCollection); } return(videoToChange); }