예제 #1
0
 /// <summary>
 /// Initializes a new instance of the MovieDetailsViewModel class.
 /// </summary>
 /// <param name="movieService">Service used to interact with movies</param>
 /// <param name="languageService">Language service</param>
 /// <param name="movieTrailerService">The movie trailer service</param>
 /// <param name="subtitlesService">The subtitles service</param>
 public MovieDetailsViewModel(IMovieService movieService, ILanguageService languageService, IMovieTrailerService movieTrailerService, ISubtitlesService subtitlesService)
 {
     _movieTrailerService             = movieTrailerService;
     _movieService                    = movieService;
     _subtitlesService                = subtitlesService;
     _cancellationLoadingToken        = new CancellationTokenSource();
     _cancellationLoadingTrailerToken = new CancellationTokenSource();
     DownloadMovie                    = new DownloadMovieViewModel(subtitlesService, languageService);
     RegisterMessages();
     RegisterCommands();
 }
예제 #2
0
 /// <summary>
 /// Initializes a new instance of the MovieDetailsViewModel class.
 /// </summary>
 /// <param name="movieService">Service used to interact with movies</param>
 /// <param name="movieTrailerService">The movie trailer service</param>
 /// <param name="subtitlesService">The subtitles service</param>
 public MovieDetailsViewModel(IMovieService movieService, IMovieTrailerService movieTrailerService,
                              ISubtitlesService subtitlesService)
 {
     _movieTrailerService = movieTrailerService;
     _movieService        = movieService;
     Movie                           = new MovieJson();
     SimilarMovies                   = new ObservableCollection <MovieLightJson>();
     SubtitlesService                = subtitlesService;
     CancellationLoadingToken        = new CancellationTokenSource();
     CancellationLoadingTrailerToken = new CancellationTokenSource();
     DownloadMovie                   = new DownloadMovieViewModel(subtitlesService, new DownloadMovieService <MovieJson>());
     RegisterMessages();
     RegisterCommands();
 }
예제 #3
0
        /// <summary>
        /// Register commands
        /// </summary>
        private void RegisterCommands()
        {
            LoadMovieCommand = new RelayCommand <MovieShort>(async movie => { await LoadMovieAsync(movie); });

            PlayMovieCommand = new RelayCommand(() =>
            {
                IsDownloadingMovie = true;
                DownloadMovie      = new DownloadMovieViewModel(Movie);
            });

            PlayTrailerCommand = new RelayCommand(async() =>
            {
                IsPlayingTrailer = true;
                IsTrailerLoading = true;
                Trailer          = await TrailerViewModel.CreateAsync(Movie, CancellationLoadingTrailerToken);
                IsTrailerLoading = false;
            });

            StopLoadingTrailerCommand = new RelayCommand(StopLoadingTrailer);
        }