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