コード例 #1
0
ファイル: RedditViewModel.cs プロジェクト: dpotts/Film-Spot
        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;
                });
            }
        }
コード例 #2
0
        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);
                });
            }
        }