public void Response_Movie_Details(IAsyncResult result) { //Debug.WriteLine("got a response for details"); RootObject_Details movie_info = new RootObject_Details(); try { HttpWebRequest request = (HttpWebRequest)result.AsyncState; HttpWebResponse response = (HttpWebResponse)request.EndGetResponse(result); using (StreamReader streamReader = new StreamReader(response.GetResponseStream())) { string json_details = ""; json_details = streamReader.ReadToEnd(); movie_info = JsonConvert.DeserializeObject <RootObject_Details>(json_details); } Deployment.Current.Dispatcher.BeginInvoke(() => { string arguments = response.ResponseUri.ToString().Replace("http://www.omdbapi.com/?", ""); string[] query_type = arguments.Split('&'); query_type = query_type[0].Split('='); string search_type = ""; string search_title = ""; if (query_type.Length > 0) { search_type = query_type[0]; search_title = query_type[1]; } else { //Debug.WriteLine("Search movie details error"); } if ((movie_info.Response == "True" && movie_info.Type == "movie") || (search_type == "s" && movie_info.Response != "False" && movie_info.Search[0].Type == "movie")) { if (search_type == "t") { foreach (MoviesResult SingleMovie in MovieCollection) { if (string.Equals(search_title, SingleMovie.Title, StringComparison.CurrentCultureIgnoreCase)) { SingleMovie.Title = movie_info.Title; SingleMovie.ImageUrl = movie_info.Poster; SingleMovie.Runtime = movie_info.Runtime; SingleMovie.Released = movie_info.Released; SingleMovie.ImdbID = movie_info.imdbID; double rating; double.TryParse(movie_info.imdbRating, out rating); if (rating > 0) { SingleMovie.Rating = rating.ToString(); } else { SingleMovie.Rating = ""; } if (rating > 9.0) { SingleMovie.Star1 = "Assets/full_star.png"; SingleMovie.Star2 = "Assets/full_star.png"; SingleMovie.Star3 = "Assets/full_star.png"; SingleMovie.Star4 = "Assets/full_star.png"; SingleMovie.Star5 = "Assets/full_star.png"; } else if (rating > 8.0) { SingleMovie.Star1 = "Assets/full_star.png"; SingleMovie.Star2 = "Assets/full_star.png"; SingleMovie.Star3 = "Assets/full_star.png"; SingleMovie.Star4 = "Assets/full_star.png"; SingleMovie.Star5 = "Assets/half_star.png"; } else if (rating > 7.0) { SingleMovie.Star1 = "Assets/full_star.png"; SingleMovie.Star2 = "Assets/full_star.png"; SingleMovie.Star3 = "Assets/full_star.png"; SingleMovie.Star4 = "Assets/full_star.png"; SingleMovie.Star5 = "Assets/no_star.png"; } else if (rating > 6.0) { SingleMovie.Star1 = "Assets/full_star.png"; SingleMovie.Star2 = "Assets/full_star.png"; SingleMovie.Star3 = "Assets/full_star.png"; SingleMovie.Star4 = "Assets/half_star.png"; SingleMovie.Star5 = "Assets/no_star.png"; } else if (rating > 5.0) { SingleMovie.Star1 = "Assets/full_star.png"; SingleMovie.Star2 = "Assets/full_star.png"; SingleMovie.Star3 = "Assets/full_star.png"; SingleMovie.Star4 = "Assets/no_star.png"; SingleMovie.Star5 = "Assets/no_star.png"; } else if (rating > 4.0) { SingleMovie.Star1 = "Assets/full_star.png"; SingleMovie.Star2 = "Assets/full_star.png"; SingleMovie.Star3 = "Assets/half_star.png"; SingleMovie.Star4 = "Assets/no_star.png"; SingleMovie.Star5 = "Assets/no_star.png"; } else if (rating > 3.0) { SingleMovie.Star1 = "Assets/full_star.png"; SingleMovie.Star2 = "Assets/full_star.png"; SingleMovie.Star3 = "Assets/no_star.png"; SingleMovie.Star4 = "Assets/no_star.png"; SingleMovie.Star5 = "Assets/no_star.png"; } else if (rating > 2.0) { SingleMovie.Star1 = "Assets/full_star.png"; SingleMovie.Star2 = "Assets/half_star.png"; SingleMovie.Star3 = "Assets/no_star.png"; SingleMovie.Star4 = "Assets/no_star.png"; SingleMovie.Star5 = "Assets/no_star.png"; } else if (rating > 1.0) { SingleMovie.Star1 = "Assets/full_star.png"; SingleMovie.Star2 = "Assets/no_star.png"; SingleMovie.Star3 = "Assets/no_star.png"; SingleMovie.Star4 = "Assets/no_star.png"; SingleMovie.Star5 = "Assets/no_star.png"; } else if (rating <= 1.0 & rating > 0.0) { SingleMovie.Star1 = "Assets/half_star.png"; SingleMovie.Star2 = "Assets/no_star.png"; SingleMovie.Star3 = "Assets/no_star.png"; SingleMovie.Star4 = "Assets/no_star.png"; SingleMovie.Star5 = "Assets/no_star.png"; } else { SingleMovie.Star1 = "Assets/no_star.png"; SingleMovie.Star2 = "Assets/no_star.png"; SingleMovie.Star3 = "Assets/no_star.png"; SingleMovie.Star4 = "Assets/no_star.png"; SingleMovie.Star5 = "Assets/no_star.png"; } } } } else { //Debug.WriteLine("Found movie details for {0} ({1})", movie_info.Search[0].Title, search_title); int new_year = 0; int.TryParse(movie_info.Search[0].Year, out new_year); foreach (MoviesResult SingleMovie in MovieCollection) { if (string.Equals(search_title, SingleMovie.Title, StringComparison.CurrentCultureIgnoreCase)) { SingleMovie.Title = movie_info.Search[0].Title; } } Get_Movie_Details(movie_info.Search[0].Title, new_year); } } else if (search_type == "t") { //Debug.WriteLine("Search for {0}",search_title); string[] more_cleaning_title = search_title.Split('['); more_cleaning_title = more_cleaning_title[0].Split('('); string more_cleaned_title = more_cleaning_title[0].Replace(" ", " "); more_cleaned_title = more_cleaned_title.Trim(); foreach (MoviesResult SingleMovie in MovieCollection) { if (string.Equals(search_title, SingleMovie.Title, StringComparison.CurrentCultureIgnoreCase)) { SingleMovie.Title = more_cleaned_title; } } Get_Movie_Details(more_cleaned_title, 0, 1); } else { //Debug.WriteLine("No {0} details available for {1}", search_type, search_title); } }); } catch (Exception e) { Deployment.Current.Dispatcher.BeginInvoke(() => { MessageBox.Show("ERROR: problem connecting to movie server for details: " + e.Message); this.IsLoading = false; }); } }
public void Response_Movie_Details(IAsyncResult result) { //Debug.WriteLine("got a response for details"); RootObject_Details movie_info = new RootObject_Details(); try { HttpWebRequest request = (HttpWebRequest)result.AsyncState; HttpWebResponse response = (HttpWebResponse)request.EndGetResponse(result); using (StreamReader streamReader = new StreamReader(response.GetResponseStream())) { string json_details = ""; json_details = streamReader.ReadToEnd(); movie_info = JsonConvert.DeserializeObject <RootObject_Details>(json_details); } Deployment.Current.Dispatcher.BeginInvoke(() => { if (movie_info.Poster != "N/A" && movie_info.Poster != null) { poster.Source = new System.Windows.Media.Imaging.BitmapImage(new Uri(movie_info.Poster, UriKind.Absolute)); movie_poster = movie_info.Poster; } if (movie_info.Title != null) { movie_title = movie_info.Title; } title.Text = movie_title; if (movie_info.Year != null) { title.Text += " (" + movie_info.Year + ")"; } if (movie_info.Rated != null) { rating.Text = movie_info.Rated; } if (movie_info.Plot != null) { plot.Text = movie_info.Plot; } if (movie_info.Genre != null) { genre.Text = movie_info.Genre; } if (movie_info.imdbRating != null) { imdb.Text = movie_info.imdbRating; } if (movie_info.tomatoRating != null) { tomato.Text = movie_info.tomatoRating; } if (movie_info.Runtime != null) { runtime.Text = movie_info.Runtime; } if (movie_info.Writer != null) { writers.Text = movie_info.Writer; } if (movie_info.Director != null) { directors.Text = movie_info.Director; } if (movie_info.Actors != null) { actors.Text = movie_info.Actors; } }); } catch (Exception e) { Deployment.Current.Dispatcher.BeginInvoke(() => { MessageBox.Show("Network error occured getting movie details" + e.Message); }); } }