コード例 #1
0
ファイル: MoviesManager.cs プロジェクト: AnthonyRyck/Zeus
        /// <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);
        }
コード例 #2
0
ファイル: MoviesManager.cs プロジェクト: AnthonyRyck/Zeus
        /// <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);
        }