Exemple #1
0
        /// <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);
                    }
                }
            }
        }
Exemple #2
0
        /// <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);
                }
            }
        }