예제 #1
0
        public async Task AddMovie(int id)
        {
            try
            {
                var movie = await Client.GetMovieAsync(id, MovieMethods.Credits);

                string date;

                if (movie.ReleaseDate == null)
                {
                    date = "No info available";
                }
                else
                {
                    date = ((DateTime)movie.ReleaseDate).ToString("dd.MM.yyyy");
                }

                string image = "no_poster.jpg";

                if (Settings.Instance.DownloadImages)
                {
                    image = Client.GetImageUrl("w500", movie.PosterPath).ToString();
                }

                Film film = new Film(movie.Title, (short)movie.Runtime, date, movie.Overview, image);

                foreach (var actor in movie.Credits.Cast)
                {
                    string name = actor.Name;
                    foreach (var existingActor in ActorCollection.Instance.Actors.Where(a => a.Name == name))
                    {
                        film.AddActor(existingActor);
                    }
                }

                foreach (var producer in movie.Credits.Crew)
                {
                    string name = producer.Name;
                    foreach (var existingProducer in ProducerCollection.Instance.Producers.Where
                                 (p => p.Name == name && producer.Job == "Director"))
                    {
                        film.AddProducer(existingProducer);
                    }
                }

                foreach (var genre in movie.Genres)
                {
                    foreach (var g in Enum.GetValues(typeof(Genres)))
                    {
                        if (((Genres)g).ToString() == genre.Name.Replace(" ", ""))
                        {
                            film.GenresList.Add((Genres)g);
                        }
                    }
                }

                FilmCollection.Instance.Films.Add(film);
                UserDialogs.Instance.Toast("Success!");
            }
            catch (HttpRequestException)
            {
                UserDialogs.Instance.Toast("Network Error");
            }
            catch (Exception)
            {
                UserDialogs.Instance.Toast("Ooops! Something went wrong!");
            }
        }