/// <summary> /// Met à jour l'api locale à partir des résultats de l'api distante /// </summary> /// <param name="query"></param> /// <param name="page"></param> public static void getResultUpdate(string query, int page) { var listeSerie = SerieDAO.listSeries().Where(series => series.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 listeSerie) { listeId_ApiLocale.Add(item.Id_dbmovie.ToString()); } // on crée une liste contenant les titre des séries présent dans l'api distante string UrlSerie = "https://api.themoviedb.org/3/search/tv?api_key=a77cba9e9e7532eeccc7a2a0239bb7ff&query=" + query + "&page=" + page + "&language=fr-FR"; string jsonResult = MovieDbAPI_Helper.Call_MovieDbAPI(query, page, UrlSerie); var items = JsonConvert.DeserializeObject <Serie.RootObject>(jsonResult); var listeSerieDistante = items.results; foreach (var item in listeSerieDistante) { if (item.original_language == "fr" || item.original_language == "en") { if (!listeId_ApiLocale.Contains(item.id.ToString())) { string UrlSerieDetails = "https://api.themoviedb.org/3/tv/" + item.id + "?api_key=a77cba9e9e7532eeccc7a2a0239bb7ff&language=fr-FR"; string jsonDetails = MovieDbAPI_Helper.Call_Details_MovieDbAPI(UrlSerieDetails); var itemsDetails = JsonConvert.DeserializeObject <Serie.Details.RootObject>(jsonDetails); var titre = item.original_name; var synopsis = item.overview; var date_sortie = itemsDetails.first_air_date; if (date_sortie == null || date_sortie.Count() < 4) { date_sortie = "2000-01-01"; } var url_affiche = itemsDetails.poster_path; 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.AddSerie(titre, synopsis, date_sortie, url_affiche, url_bande_annonce, id_genre, id_moviedb); } } } }
/// <summary> /// Ajoute l'ensemble des données des films depuis l'api distante vers l'api locale si aucun résultat n'a été trouvé dans la base de donnée /// </summary> /// <param name="query"></param> /// <param name="page"></param> public static void GetResultAll(string query, int page) { // on appelle l'api distante pour récupérer les résultats de la recherche string urlMovie = "https://api.themoviedb.org/3/search/movie?api_key=a77cba9e9e7532eeccc7a2a0239bb7ff&query=" + query + "&page=" + page + "&language=fr-FR"; string jsonResult = MovieDbAPI_Helper.Call_MovieDbAPI(query, page, urlMovie); var items = JsonConvert.DeserializeObject <Film.Search.RootObject>(jsonResult); var results = items.results; // on ajoute tous les résultats à notre bdd foreach (var item in results) { if (item.original_language == "fr" || item.original_language == "en") { string urlMovieDetails = "https://api.themoviedb.org/3/movie/" + item.id + "?api_key=a77cba9e9e7532eeccc7a2a0239bb7ff&language=fr-FR"; // on récupère les details des séries 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; var duree = ""; if (duree != 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; // on ajoute à la base de données tous les éléments DataBase.AddFilms(titre, synopsis, date_sortie, duree, url_affiche, url_bande_annonce, id_genre, id_moviedb); } } }