//метод, надсилає запит та оброблює його, щоб відобразити всі фільми на конкретній сторінці 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 { } }
//метод, першочергово викликається для відображення першої сторінки з фільмами public void CallAPI() { //рядок, який містить запит (посилання) string upcomingMoviesLink = AllResources.AllMoviesLinkTemplate + ResourceAPI.api_key + AllResources.SortForLink; //створення запиту на основі попереднього рядка HttpWebRequest apiRequest = WebRequest.Create(upcomingMoviesLink) as HttpWebRequest; //зчитування всього тексту, який повернув TheMovieDatabase, у apiResponse string apiResponse = ""; using (HttpWebResponse response = apiRequest.GetResponse() as HttpWebResponse) { StreamReader reader = new StreamReader(response.GetResponseStream()); apiResponse = reader.ReadToEnd(); } //обробка тексту apiResponse, використовуючи десеріалізацію JSON-формату, запис результату у екземпляр класу ResponseSearchMovies ResponseSearchMovies rootObject = JsonConvert.DeserializeObject <ResponseSearchMovies>(apiResponse); total_pages = rootObject.total_pages; //отримання колекції фільмів з 1 сторінки GetMovies(1); }