コード例 #1
0
        private async Task <NeoModels.Movie> ApiMovieAsync(string searchQuery)
        {
            ApiSearchResponse <MovieInfo> response = await movieAPI.SearchByTitleAsync(searchQuery);

            MovieInfo info = response.Results[0];
            ApiQueryResponse <DM.MovieApi.MovieDb.Movies.Movie> movieinfo = await movieAPI.FindByIdAsync(info.Id);

            ApiQueryResponse <DM.MovieApi.MovieDb.Movies.MovieCredit> credits = await movieAPI.GetCreditsAsync(info.Id);

            NeoModels.Movie movie = new NeoModels.Movie(movieinfo.Item, credits.Item);

            movie.Title = movie.Title.Replace(':', '-');

            String poster = "http://image.tmdb.org/t/p/w342/" + movie.Poster;

            StorageFolder folder  = ApplicationData.Current.LocalFolder;
            string        appPath = folder.Path;

            appPath += "\\";
            appPath += movie.Title;
            appPath += ".jpg";

            await downloadImage(new Uri(poster), appPath);

            movie.Poster = appPath;

            return(movie);
        }
コード例 #2
0
        private async void RefreshButton_Click(object sender, RoutedEventArgs e)
        {
            Intro.Visibility = Visibility.Collapsed;
            NeoModels.Movie async = await getSuggestionsAsync();

            control.IsTapEnabled = true;
        }
コード例 #3
0
        private void control_Tapped(object sender, TappedRoutedEventArgs e)
        {
            int index = control.SelectedIndex;

            if (ShouldAdd[index])
            {
                AddToCheckBox.IsChecked = true;
            }
            else
            {
                AddToCheckBox.IsChecked = false;
            }

            NeoModels.Movie selectedMovie = (NeoModels.Movie)indicator.SelectedItem;
            if (selectedMovie == null)
            {
                return;
            }

            TitleTextblock.Text     = selectedMovie.Title;
            YearTextblock.Text      = selectedMovie.Year.ToString();
            PlotTextblock.Text      = selectedMovie.Overview;
            GenresTextblock.Text    = String.Join(",", selectedMovie.Genres);
            DirectorsTextblock.Text = String.Join(",", selectedMovie.Directors);
            ActorsTextblock.Text    = String.Join(",", selectedMovie.Actors);

            DirectorsTextblockHolder.Text = "Directors:";
            ActorsTextblockHolder.Text    = "Actors:";
        }
コード例 #4
0
        private void MoviesList_SelectionChanged(object sender, SelectionChangedEventArgs e)
        {
            AddButton.IsEnabled = false;
            MovieBox.NeoModels.Movie selected = (MovieBox.NeoModels.Movie)MoviesList.SelectedItem;
            txtYear.Text      = "";
            txtDirectors.Text = "";
            txtGenres.Text    = "";
            txtPlot.Text      = "";

            if (selected == null && moviesPath.Count == 0)
            {
                txtTitle.Text            = "";
                MetadataButton.IsEnabled = false;
                AddButton.IsEnabled      = false;
                lblAlert.Text            = "All movies have been imported!";
                BackBorder.Opacity       = 0;
                return;
            }
            else if (selected == null)
            {
                return;
            }

            if (selected.Title == null)
            {
                return;
            }
            txtTitle.Text = selected.Title;
        }
コード例 #5
0
 private void AddButton_Click(object sender, RoutedEventArgs e)
 {
     NeoSingleton._connect();
     NeoSingleton._addMovie(addMovie);
     MovieBox.NeoModels.Movie movie = (MovieBox.NeoModels.Movie)MoviesList.SelectedItem;
     movieList.Instance.addMovie(addMovie);
     moviesPath.Remove(movie);
 }
コード例 #6
0
 private void initializeMovies()
 {
     foreach (String obj in files)
     {
         String movieTitle = Path.GetFileName(obj);
         movieTitle = movieTitle.Remove(movieTitle.Length - 4);
         MovieBox.NeoModels.Movie movie = new MovieBox.NeoModels.Movie();
         movie.Title = movieTitle;
         movie.Path  = obj;
         moviesPath.Add(movie);
     }
 }
コード例 #7
0
        private async void btnMedatada_Click(object sender, RoutedEventArgs e)
        {
            String separator = ",";

            if (string.IsNullOrWhiteSpace(txtTitle.Text))
            {
                return;
            }

            String movieTitle = txtTitle.Text;

            ProgressMeter.Visibility = Visibility.Visible;
            ProgressMeter.IsActive   = true;

            try
            {
                addMovie = await ApiMovieAsync(movieTitle);

                lblAlert.Text = "";
            }
            catch (Exception)
            {
                lblAlert.Text            = "Metadata not found, check your title!";
                ProgressMeter.Visibility = Visibility.Collapsed;
                ProgressMeter.IsActive   = false;
                return;
            }

            txtTitle.Text     = addMovie.Title;
            txtYear.Text      = addMovie.Year.ToString();
            txtRuntime.Text   = addMovie.Runtime.ToString();
            txtGenres.Text    = String.Join(separator, addMovie.Genres);
            txtDirectors.Text = String.Join(separator, addMovie.Directors);
            txtWriters.Text   = String.Join(separator, addMovie.Writers);
            txtActors.Text    = String.Join(separator, addMovie.Actors);
            txtPlot.Text      = addMovie.Overview;

            Uri         imageUri    = new Uri(addMovie.Poster, UriKind.Absolute);
            BitmapImage imageBitmap = new BitmapImage(imageUri);

            imgPoster.Source = imageBitmap;

            btnPath.IsEnabled = true;

            ProgressMeter.Visibility = Visibility.Collapsed;
            ProgressMeter.IsActive   = false;
        }
コード例 #8
0
        private async void MetadataButton_Click(object sender, RoutedEventArgs e)
        {
            String separator = ",";

            if (string.IsNullOrWhiteSpace(txtTitle.Text))
            {
                return;
            }

            if (moviesPath.Count == 0)
            {
                return;
            }

            ProgressMeter.Visibility = Visibility.Visible;
            ProgressMeter.IsActive   = true;

            String movieTitle = txtTitle.Text;

            try
            {
                addMovie = await ApiMovieAsync(movieTitle);

                addMovie.Path = ((MovieBox.NeoModels.Movie)MoviesList.SelectedItem).Path;
                lblAlert.Text = "";
            }
            catch (Exception)
            {
                lblAlert.Text            = "Metadata not found, check your title!";
                ProgressMeter.Visibility = Visibility.Collapsed;
                ProgressMeter.IsActive   = false;
                return;
            }

            AddButton.IsEnabled = true;

            txtTitle.Text     = addMovie.Title;
            txtYear.Text      = addMovie.Year.ToString();
            txtGenres.Text    = String.Join(separator, addMovie.Genres);
            txtDirectors.Text = String.Join(separator, addMovie.Directors);
            txtPlot.Text      = addMovie.Overview;

            ProgressMeter.Visibility = Visibility.Collapsed;
            ProgressMeter.IsActive   = false;
        }
コード例 #9
0
        private void indicator_ItemClick(object sender, ItemClickEventArgs e)
        {
            int index = control.SelectedIndex;

            if (ShouldAdd[index])
            {
                AddToCheckBox.IsChecked = true;
            }
            else
            {
                AddToCheckBox.IsChecked = false;
            }

            NeoModels.Movie selectedMovie = (NeoModels.Movie)e.ClickedItem;
            TitleTextblock.Text     = selectedMovie.Title;
            YearTextblock.Text      = selectedMovie.Year.ToString();
            PlotTextblock.Text      = selectedMovie.Overview;
            GenresTextblock.Text    = String.Join(",", selectedMovie.Genres);
            DirectorsTextblock.Text = String.Join(",", selectedMovie.Directors);
            ActorsTextblock.Text    = String.Join(",", selectedMovie.Actors);

            DirectorsTextblockHolder.Text = "Directors:";
            ActorsTextblockHolder.Text    = "Actors:";
        }
コード例 #10
0
        /// <summary>
        /// Helper methods
        /// </summary>
        /// <returns></returns>
        private async Task <NeoModels.Movie> getSuggestionsAsync()
        {
            Suggested.Clear();
            ShouldAdd.Clear();

            try
            {
                LoadingControl.Visibility = Visibility.Visible;
                LoadingControl.IsEnabled  = true;
                LoadingControl.IsLoading  = true;

                Random randomGenerator = new Random();
                int    randomPage      = randomGenerator.Next(1, 20);
                ApiSearchResponse <MovieInfo> response = await movieAPI.GetTopRatedAsync(randomPage);

                int iter = 0;

                foreach (MovieInfo info in response.Results)
                {
                    if (movieList.Instance.existsInList(info.Title))
                    {
                        continue;
                    }

                    NeoModels.Movie addMovie = await ApiMovieAsync(info.Title);

                    Suggested.Add(addMovie);
                    ShouldAdd.Add(false);

                    if (iter++ == 10)
                    {
                        break;
                    }
                }

                randomPage = randomGenerator.Next(1, 20);
                response   = await movieAPI.GetPopularAsync(randomPage);

                iter = 0;

                foreach (MovieInfo info in response.Results)
                {
                    if (movieList.Instance.existsInList(info.Title))
                    {
                        continue;
                    }

                    NeoModels.Movie addMovie = await ApiMovieAsync(info.Title);

                    Suggested.Add(addMovie);
                    ShouldAdd.Add(false);

                    if (iter++ == 10)
                    {
                        break;
                    }
                }
            }
            catch
            {
                LoadingControl.IsLoading = false;
                AddToCheckBox.Visibility = Visibility.Visible;
                control.Visibility       = Visibility.Visible;
                control.SelectedIndex    = 9;
                return(null);
            }

            LoadingControl.IsLoading = false;
            AddToCheckBox.Visibility = Visibility.Visible;
            control.Visibility       = Visibility.Visible;
            control.SelectedIndex    = 9;
            return(null);
        }