Esempio n. 1
0
        /// <summary>
        /// retourne la liste des films de notre api
        /// </summary>
        /// <param name="query"></param>
        /// <param name="page"></param>
        /// <returns></returns>
        public static IEnumerable <Film> GetResults(string query, int page)
        {
            var listeFilms = FilmDAO.listFilms().Where(films => films.Titre.ToLower().Contains(query.ToLower()));

            if (listeFilms.Count() == 0)
            {
                GetResultAll(query, page);
                listeFilms = FilmDAO.listFilms().Where(films => films.Titre.ToLower().Contains(query.ToLower()));
                return(listeFilms);
            }

            else
            {
                getResultUpdate(query, page);
                listeFilms = FilmDAO.listFilms().Where(series => series.Titre.ToLower().Contains(query.ToLower()));
                return(listeFilms);
            }
        }
Esempio n. 2
0
        /// <summary>
        /// Met à jour les données de l'api locale à partir des résultats de l'api distante si au moins un résultat est dans la base de données
        /// </summary>
        /// <param name="query"></param>
        /// <param name="page"></param>
        public static void getResultUpdate(string query, int page)
        {
            var listeFilm = FilmDAO.listFilms().Where(films => films.Titre.ToLower().Contains(query.ToLower()));
            // on crée une liste contenant les titres des séries présent dans notre api locale
            List <string> listeId_ApiLocale = new List <string>();

            foreach (var item in listeFilm)
            {
                listeId_ApiLocale.Add(item.Id_dbmovie.ToString());
            }

            string urlMovie = "https://api.themoviedb.org/3/search/movie?api_key=a77cba9e9e7532eeccc7a2a0239bb7ff&query=" + query + "&page=" + page + "&language=fr-FR";
            // on crée une liste contenant les titre des séries présent dans l'api distante
            string jsonResult       = MovieDbAPI_Helper.Call_MovieDbAPI(query, page, urlMovie);
            var    items            = JsonConvert.DeserializeObject <Film.Search.RootObject>(jsonResult);
            var    listeFilmDistant = items.results;

            foreach (var item in listeFilmDistant)
            {
                if (item.original_language == "fr" || item.original_language == "en")
                {
                    if (!listeId_ApiLocale.Contains(item.id.ToString()))
                    {
                        string urlMovieDetails = "https://api.themoviedb.org/3/movie/" + item.id + "?api_key=a77cba9e9e7532eeccc7a2a0239bb7ff&language=fr-FR";
                        string jsonDetails     = MovieDbAPI_Helper.Call_Details_MovieDbAPI(urlMovieDetails);
                        var    itemsDetails    = JsonConvert.DeserializeObject <Film.Details.RootObject>(jsonDetails);

                        // on enregistre dans les variables les valeurs de chaque champs
                        var titre       = item.title;
                        var synopsis    = item.overview;
                        var date_sortie = itemsDetails.release_date;
                        if (date_sortie == null || date_sortie.Count() < 4)
                        {
                            date_sortie = "2000-01-01";
                        }
                        var    url_affiche = itemsDetails.poster_path;
                        string duree       = "0";
                        if (itemsDetails.runtime != null)
                        {
                            duree = itemsDetails.runtime.ToString();
                        }
                        if (url_affiche == null)
                        {
                            url_affiche = "";
                        }
                        var    url_bande_annonce = string.Empty;
                        string id_genre          = string.Empty;
                        if (item.genre_ids.Count == 0)
                        {
                            id_genre = "-1";
                        }
                        else
                        {
                            id_genre = item.genre_ids[0].ToString();
                        }
                        var id_moviedb = item.id;

                        DataBase.AddFilms(titre, synopsis, date_sortie, duree, url_affiche, url_bande_annonce, id_genre, id_moviedb);
                    }
                }
            }
        }