Exemplo n.º 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);
                    }
                }
            }
        }
Exemplo n.º 2
0
        /// <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);
            }
        }