Пример #1
0
        public ViewModelPrincipal()
        {
            //CarouselView se muestra antes de ejecutar el código del viewmodel, por lo que si
            //la lista está vacia, el programa crashea

            //Instancia una nueva pelicula vacia para que el CarouselView no crashee la aplicación
            List <DiscoverMovie> coleccion = new List <DiscoverMovie>();
            DiscoverMovie        movie     = new DiscoverMovie()
            {
                ID         = 1,
                PosterPath = "",
                Title      = ""
            };

            coleccion.Add(movie);
            //Rellena la coleccion con la pelicula vacia
            this.InTheatreMovies = new ObservableCollection <DiscoverMovie>(coleccion);
            this.KidsMovies      = new ObservableCollection <DiscoverMovie>(coleccion);
            this.SpainMovies     = new ObservableCollection <DiscoverMovie>(coleccion);
            repoMovie            = new RepositoryMovie();
            //Ahora, rellena el carousel con la informacion de verdad
            Task.Run(async() =>
            {
                DiscoverMovieRequest request = await repoMovie.DiscoverInTheatreMovies(Sort.PopularityDesc, IncludeAdult.Yes);
                this.InTheatreMovies         = new ObservableCollection <DiscoverMovie>(request.Movies);

                request          = await repoMovie.DiscoverSpainMovies(Sort.PopularityDesc, IncludeAdult.Yes);
                this.SpainMovies = new ObservableCollection <DiscoverMovie>(request.Movies);

                request         = await repoMovie.DiscoverKidsMovies(Sort.PopularityDesc, IncludeAdult.No);
                this.KidsMovies = new ObservableCollection <DiscoverMovie>(request.Movies);
            });
        }
Пример #2
0
        //Discover Movie through filtering
        private static PagedResult <Movie> FilterMovies(TMDbClient client, int[] genre, int page, DiscoverMovieSortBy sortby, int year)
        {
            DiscoverMovie query = client.DiscoverMoviesAsync().IncludeWithAllOfGenre(genre).WherePrimaryReleaseIsInYear(year).OrderBy(sortby);

            SearchContainer <SearchMovie> results = query.Query(page).Result;

            var getMovies = (from result in results.Results
                             select new
            {
                Title = result.Title,
                PosterPath = result.PosterPath,
                Id = result.Id
            }).ToList().Select(p => new Movie()
            {
                Title      = p.Title,
                PosterPath = p.PosterPath,
                Id         = p.Id
            });
            var pagedMovie = new PagedResult <Movie>
            {
                Data       = getMovies.ToList(),
                TotalItems = results.TotalResults,
                PageNumber = page,
                PageSize   = 21
            };

            return(pagedMovie);
        }
Пример #3
0
        public void TestDiscoverMovies()
        {
            DiscoverMovie query = Config.Client.DiscoverMoviesAsync()
                                  .WhereVoteCountIsAtLeast(1000)
                                  .WhereVoteAverageIsAtLeast(2);

            TestHelpers.SearchPages(i => query.Query(i).Result);
        }
Пример #4
0
        public async Task TestDiscoverMoviesRegionAsync()
        {
            DiscoverMovie query = TMDbClient.DiscoverMoviesAsync()
                                  .WhereReleaseDateIsInRegion("BR")
                                  .WherePrimaryReleaseDateIsAfter(new DateTime(2017, 01, 01));

            await TestHelpers.SearchPagesAsync(i => query.Query(i));
        }
Пример #5
0
        public async Task TestDiscoverMoviesAsync()
        {
            DiscoverMovie query = TMDbClient.DiscoverMoviesAsync()
                                  .WhereVoteCountIsAtLeast(1000)
                                  .WhereVoteAverageIsAtLeast(2);

            await TestHelpers.SearchPagesAsync(i => query.Query(i));
        }
Пример #6
0
        public void TestDiscoverMovies()
        {
            DiscoverMovie query = _config.Client.DiscoverMovies()
                                  .WhereVoteCountIsAtLeast(1000)
                                  .WhereVoteAverageIsAtLeast(2);

            TestHelpers.SearchPages(query.Query);
        }
Пример #7
0
        public void TestDiscoverMoviesRegion()
        {
            // Ignore missing json
            IgnoreMissingJson("results[array] / media_type");

            DiscoverMovie query = Config.Client.DiscoverMoviesAsync().WhereReleaseDateIsInRegion("BR").WherePrimaryReleaseDateIsAfter(new DateTime(2017, 01, 01));

            TestHelpers.SearchPages(i => query.Query(i).Result);
        }
Пример #8
0
        public void CreateMovieGenreView(object parameter)
        {
            PagedDocumentViewModel <MovieContainer> viewModel = null;
            DiscoverMovie movie = null;

            if (ShowDocument(Properties.Resources.MovieGenres))
            {
                viewModel = Documents.CurrentDocument as PagedDocumentViewModel <MovieContainer>;
                movie     = viewModel.Parameter as DiscoverMovie;
            }
            else
            {
                movie               = App.Repository.DiscoverMovie();
                viewModel           = ViewModelSource.Create <PagedDocumentViewModel <MovieContainer> >();
                viewModel.FetchPage = async(x, y) => await App.Repository.DiscoverMovieAsync(movie, Settings.Default.Language, x, y);

                viewModel.Header       = () => Properties.Resources.MovieGenres;
                viewModel.DocumentType = "MovieGenreView";
                viewModel.Parameter    = movie;

                viewModel.Parameters.VoteCount = 0d;
                viewModel.Parameters.SortBy    = MovieSort.PopularityDesc;

                AddToDocuments(viewModel);
            }

            viewModel.Parameters.Genre   = null;
            viewModel.Parameters.Keyword = null;
            viewModel.Parameters.Company = null;

            if (parameter != null)
            {
                viewModel.Parameters.Genre = GenreHelper.MovieGenres.Last();

                if (parameter is int genreId)
                {
                    viewModel.Parameters.Genre = GenreHelper.MovieGenres.FirstOrDefault(x => x.Id == genreId);
                }
                else if (parameter is Keyword keyword)
                {
                    viewModel.Parameters.Keyword = new SearchKeyword {
                        Id = keyword.Id, Name = keyword.Name
                    }
                }
                ;
                else if (parameter is ProductionCompany company)
                {
                    viewModel.Parameters.Company = new SearchCompany {
                        Id = company.Id, Name = company.Name
                    }
                }
                ;

                viewModel.Refresh();
            }
        }
Пример #9
0
        public void TestDiscoverMoviesLanguage()
        {
            // Ignore missing json
            IgnoreMissingJson("results[array] / media_type");

            DiscoverMovie query = Config.Client.DiscoverMoviesAsync().WhereLanguageIs("da-DK").WherePrimaryReleaseDateIsAfter(new DateTime(2017, 01, 01));

            Assert.Equal("Skønheden og Udyret", query.Query(0).Result.Results[11].Title);

            TestHelpers.SearchPages(i => query.Query(i).Result);
        }
Пример #10
0
        public void TestDiscoverMovies()
        {
            // Ignore missing json
            IgnoreMissingJson("results[array] / media_type");

            DiscoverMovie query = Config.Client.DiscoverMoviesAsync()
                                  .WhereVoteCountIsAtLeast(1000)
                                  .WhereVoteAverageIsAtLeast(2);

            TestHelpers.SearchPages(i => query.Query(i).Result);
        }
        public void TestDiscoverMoviesOriginalLanguage(string language)
        {
            // Ignore missing json
            IgnoreMissingJson("results[array] / media_type");

            DiscoverMovie      query   = Config.Client.DiscoverMoviesAsync().WhereOriginalLanguageIs(language);
            List <SearchMovie> results = query.Query(0).Result.Results;

            Assert.NotEmpty(results);
            Assert.All(results, item => Assert.Contains(language, item.OriginalLanguage));
        }
Пример #12
0
        public List <SearchMovie> Discover(int startYear, int endYear, int genreId, int page = 0)
        {
            base.Track();
            var movies = new DiscoverMovie(tmdbClient);

            if (genreId != -1)
            {
                movies = movies.IncludeWithAllOfGenre(new List <int> {
                    genreId
                });
            }

            for (int i = startYear; i <= endYear; i++)
            {
                movies = movies.WherePrimaryReleaseIsInYear(i);
            }
            return(movies.Query(page).Result.Results);
        }
Пример #13
0
        public void CreateMovieDiscoverView()
        {
            if (ShowDocument(Properties.Resources.DiscoverMovies))
            {
                return;
            }

            DiscoverMovie movie = App.Repository.DiscoverMovie();
            PagedDocumentViewModel <MovieContainer> viewModel = ViewModelSource.Create <PagedDocumentViewModel <MovieContainer> >();

            viewModel.FetchPage = async(x, y) => await App.Repository.DiscoverMovieAsync(movie, Settings.Default.Language, x, y);

            viewModel.Header       = () => Properties.Resources.DiscoverMovies;
            viewModel.DocumentType = "MovieDiscoverView";
            viewModel.Parameter    = movie;

            AddToDocuments(viewModel);
        }
Пример #14
0
        //Events
        //Event when window loads
        private void Window_Loaded(object sender, RoutedEventArgs e)
        {
            DiscoverMovie m = client.DiscoverMoviesAsync().IncludeVideoMovies().WhereReleaseDateIsAfter(DateTime.Now.AddDays(-7));
            SearchContainer <SearchMovie> recent = m.Query().Result;
            //TMDbLib.Objects.Movies.Movie movie = client.GetMovieAsync(47964).Result;
            //SearchContainer<SearchMovie> results = client.SearchMovieAsync("007").Result;
            Thread thread = new Thread(() =>
            {
                foreach (SearchMovie movie in recent.Results)
                {
                    addMovieToDatabase(movie);
                }
                displayContent = true;
            });

            thread.Start();

            displayRecentReleases();
        }
Пример #15
0
        public async Task <List <MovieContainer> > DiscoverMovieAsync(DiscoverMovie movie, string language, int page, CancellationToken cancellationToken)
        {
            var tmdbResult = await movie.Query(language : language, page : page, cancellationToken : cancellationToken);

            return(GetContainerList(tmdbResult.Results, tmdbResult.TotalResults));
        }