//метод, який відправляє та оброблює новий запит для відображення детальної інформації фільму public ObservableCollection <TheMovieDb> GetMovieDetails(int movieId) { ObservableCollection <TheMovieDb> movieDetails = new ObservableCollection <TheMovieDb>(); string movieLink = AllResources.MovieLinkTemplate + movieId + AllResources.ApiKeyForLink + ResourceAPI.api_key + AllResources.RegionForLink; HttpWebRequest apiRequest = WebRequest.Create(movieLink) as HttpWebRequest; string apiResponse = ""; try { using (HttpWebResponse response = apiRequest.GetResponse() as HttpWebResponse) { StreamReader reader = new StreamReader(response.GetResponseStream()); apiResponse = reader.ReadToEnd(); } TheMovieDb rootObject = JsonConvert.DeserializeObject <TheMovieDb>(apiResponse); TheMovieDb movie = new TheMovieDb(); movie = CreateMovie(movie, rootObject); movieDetails.Add(movie); return(movieDetails); } catch { return(movieDetails); } }
//метод, надсилає запит та оброблює його, щоб відобразити всі фільми на конкретній сторінці public void GetMovies(int page_number) { //очищення колекції, щоб заповнити тільки фільмами з конкретної сторінки MoviesCollectionOnPage.Clear(); string upcomingMoviesLink = AllResources.AllMoviesLinkTemplate + ResourceAPI.api_key + AllResources.PageForLink + page_number + AllResources.RegionForLink; HttpWebRequest apiRequest = WebRequest.Create(upcomingMoviesLink) as HttpWebRequest; string apiResponse = ""; try { using (HttpWebResponse response = apiRequest.GetResponse() as HttpWebResponse) { StreamReader reader = new StreamReader(response.GetResponseStream()); apiResponse = reader.ReadToEnd(); } ResponseSearchMovies rootObject = JsonConvert.DeserializeObject <ResponseSearchMovies>(apiResponse); foreach (Result result in rootObject.results) { //створення нового екземпляру фільму TheMovieDb movie = new TheMovieDb(); movie.title = result.title; movie.poster_path = CreatePosterPath(result.poster_path); movie.release_date = RightDateFormat(result.release_date); movie.id = result.id; //додавання екземпляру фільму до колекції фільмів на сторінці MoviesCollectionOnPage.Add(movie); } } catch { } }
//метод, який заповнює екземпляр фільмів даними private TheMovieDb CreateMovie(TheMovieDb movie, TheMovieDb rootObject) { movie.genres = rootObject.genres; movie.all_genres = GetAllGenres(movie.genres); movie.title = rootObject.title; movie.original_title = rootObject.original_title; movie.overview = rootObject.overview; movie.poster_path = CreatePosterPath(rootObject.poster_path); movie.production_countries = rootObject.production_countries; movie.all_countries = GetAllCountries(movie.production_countries); movie.production_companies = rootObject.production_companies; movie.all_companies = GetAllCompanies(movie.production_companies); movie.release_date = RightDateFormat(rootObject.release_date); movie.days_left = GetDaysLeft(movie.release_date); movie.runtime = rootObject.runtime; movie.tagline = rootObject.tagline; movie.vote_average = rootObject.vote_average; movie.spoken_languages = rootObject.spoken_languages; movie.all_languages = GetAllLanguages(movie.spoken_languages); movie.status = rootObject.status; return(movie); }