/// <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> /// retourne la liste des séries depuis l'api locale ou l'api distante /// </summary> /// <param name="query"></param> /// <param name="page"></param> /// <returns></returns> public static IEnumerable <Serie> GetResults(string query, int page) { var listeSerie = SerieDAO.listSeries().Where(series => series.Titre.ToLower().Contains(query.ToLower())); if (listeSerie.Count() == 0) { GetResultAll(query, page); listeSerie = SerieDAO.listSeries().Where(series => series.Titre.ToLower().Contains(query.ToLower())); return(listeSerie); } else { getResultUpdate(query, page); listeSerie = SerieDAO.listSeries().Where(series => series.Titre.ToLower().Contains(query.ToLower())); return(listeSerie); } }