private async Task GetSeasonAndEpisodeInformation(Guid idShow, ShowInformation serieLocal) { // Si la saison est connu. if (_serieCollection.HaveSeason(idShow, serieLocal.Saison)) { // Si Episode est non connu. if (!_serieCollection.HaveEpisode(idShow, serieLocal.Saison, serieLocal.Episode)) { int idSerie = _serieCollection.GetIdSerieTmDb(idShow); TvEpisode episode = await ClientTmDb.GetTvEpisodeAsync(idSerie, serieLocal.Saison, serieLocal.Episode); lock (_objetToLock) { _serieCollection.AddEpisode(idShow, episode, serieLocal); } } } else { // Cas ou il ne connait pas la saison. int idSerie = _serieCollection.GetIdSerieTmDb(idShow); TvSeason saison = await ClientTmDb.GetTvSeasonAsync(idSerie, serieLocal.Saison); await Task.Delay(500); TvEpisode episode = await ClientTmDb.GetTvEpisodeAsync(idSerie, serieLocal.Saison, serieLocal.Episode); lock (_objetToLock) { _serieCollection.AddSaison(idShow, saison, episode, serieLocal); } } }
/// <summary> /// Permet de créer un nouveau ShowModel. /// </summary> /// <param name="serie"></param> /// <returns></returns> private async Task <ShowModel> CreateNewShowModel(ShowInformation serie) { ShowModel showModel = new ShowModel(); var temp = await ClientTmDb.SearchTvShowAsync(serie.Titre); await Task.Delay(500); if (temp.Results.Count > 0) { var tempSerieTrouve = temp.Results[0]; // Récupération des informations de TmDb. TvShow tvShow = await ClientTmDb.GetTvShowAsync(tempSerieTrouve.Id); await Task.Delay(500); TvSeason saison = await ClientTmDb.GetTvSeasonAsync(tempSerieTrouve.Id, serie.Saison); await Task.Delay(500); TvEpisode episode = await ClientTmDb.GetTvEpisodeAsync(tempSerieTrouve.Id, serie.Saison, serie.Episode); showModel.TvShow = tvShow; showModel.TvSeasons.Add(saison); showModel.TvEpisodes.Add(episode); showModel.ShowInformation.Add(serie); } return(showModel); }
/// <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); }
/// <summary> /// Récupère du site TmDb les informations par rapport à un titre. /// </summary> /// <param name="titre"></param> /// <returns></returns> public async Task <IEnumerable <SearchVideoModel> > GetListVideoOnTmDb(string titre) { List <SearchVideoModel> retourInfo = new List <SearchVideoModel>(); var temp = await ClientTmDb.SearchMovieAsync(titre); foreach (SearchMovie result in temp.Results) { if (!string.IsNullOrEmpty(result.PosterPath)) { retourInfo.Add(new SearchVideoModel() { UrlAffiche = "https://image.tmdb.org/t/p/w370_and_h556_bestv2" + result.PosterPath, IdVideoTmDb = result.Id, Titre = result.Title, ReleaseDate = result.ReleaseDate }); } } return(retourInfo); }