private async void searchBtn_Click(object sender, EventArgs e) { if (string.IsNullOrEmpty(searchTxt.Text)) { MessageBox.Show("Inserisci il titolo del film che vuoi cercare", "Errore"); return; } int totalResults = 10, gotResults = 0, toGet = int.Parse(resultsToGet.SelectedItem.ToString()), page = 1; disableSearch(); movies = new List <Movie>(); while (gotResults < Math.Min(totalResults, toGet)) { MoviesSearch result = await searchMovies(searchTxt.Text, page ++); if (result == null) { MessageBox.Show("Impossibile comunicare con il server", "Errore"); enableSearch(); return; } else if (result.Search == null) { MessageBox.Show("Nessun film trovato", "Errore"); enableSearch(); return; } gotResults += result.Search.Count(); totalResults = int.Parse(result.totalResults); movies.AddRange(result.Search); } enableSearch(); refreshMovieList(); }
public static async Task <MoviesSearch> searchMovies(string title, int page) { MoviesSearch movies = null; try { HttpResponseMessage response = await client.GetAsync("/?apikey=" + API_KEY + "&s=" + title + "&page=" + page.ToString()); if (response.IsSuccessStatusCode) { movies = await response.Content.ReadAsAsync <MoviesSearch>(); } } catch {} return(movies); }