public TvShowViewModel(ITvShowViewModelFactory viewModelFactory,
                               ITvShowFileService tvShowFileService,
                               ITvShowMetadataService metadataService,
                               IBusyProvider busyProvider,
                               IDialogViewer dialogViewer,
                               IProgressManagerViewModel progressManager,
                               IKeyDataStore keyDataStore,
                               string path)
            : base(busyProvider, dialogViewer)
        {
            _viewModelFactory  = viewModelFactory;
            _tvShowFileService = tvShowFileService;
            _metadataService   = metadataService;
            _busyProvider      = busyProvider;
            Title = new RequiredPropertyDecorator <string>(new StringCachedPropertyDecorator(keyDataStore, path));
            Title.PropertyChanged += TitleValueChanged;
            Path      = path;
            Selection = viewModelFactory.GetTvShowSelection(this);

            RefreshCommand = new RefreshMetadataCommand(this);
            UpdateCommand  = new UpdateMetadataCommand(this, progressManager, busyProvider);
            SaveCommand    = new SaveMetadataCommand(this);
            DeleteCommand  = new DeleteMetadataCommand(this);

            Images       = viewModelFactory.GetTvShowImages(this, path);
            ActorManager = viewModelFactory.GetActorManager(path, () => OnPropertyChanged("ActorManager"));
            Genres       = new DashDelimitedCollectionViewModel <string>(s => s);

            // We need to set a "dummy" item in the collection for an arrow to appear in the TreeView since we're lazy-loading the items under it
            Children.Add(_viewModelFactory.GetSeason(this, "dummy"));
        }
        public EpisodeViewModel(ITvShowViewModelFactory viewModelFactory,
                                IEpisodeMetadataService metadataService,
                                ITvShowViewModel tvShowViewModel,
                                IProgressManagerViewModel progressManager,
                                IBusyProvider busyProvider,
                                IDialogViewer dialogViewer,
                                IKeyDataStore keyDataStore,
                                string path)
            : base(busyProvider, dialogViewer)
        {
            _metadataService = metadataService;
            _tvShowViewModel = tvShowViewModel;
            _busyProvider    = busyProvider;

            Title = new RequiredPropertyDecorator <string>(new StringCachedPropertyDecorator(keyDataStore, path + "?title"));
            Title.PropertyChanged         += CachedPropertyChanged;
            SeasonNumber                   = new RequiredPropertyDecorator <int?>(new IntCachedPropertyDecorator(keyDataStore, path + "?seasonNumber"));
            SeasonNumber.PropertyChanged  += CachedPropertyChanged;
            EpisodeNumber                  = new RequiredPropertyDecorator <int?>(new IntCachedPropertyDecorator(keyDataStore, path + "?episodeNumber"));
            EpisodeNumber.PropertyChanged += CachedPropertyChanged;
            Path = path;

            Credits   = new DashDelimitedCollectionViewModel <string>(s => s);
            Directors = new DashDelimitedCollectionViewModel <string>(s => s);
            ImagePath = viewModelFactory.GetImage(true);

            RefreshCommand = new RefreshMetadataCommand(this);
            UpdateCommand  = new UpdateMetadataCommand(this, progressManager, busyProvider);
            SaveCommand    = new SaveMetadataCommand(this);
            DeleteCommand  = new DeleteMetadataCommand(this);
        }
 public SeasonImagesViewModel(ITvShowViewModelFactory viewModelFactory,
                              ITvShowMetadataService metadataService,
                              string tvShowPath,
                              string seasonPath)
 {
     PosterUrl = viewModelFactory.GetImage(true, new SeasonPosterImageStrategy(metadataService, tvShowPath, seasonPath));
     BannerUrl = viewModelFactory.GetImage(false, new SeasonBannerImageStrategy(metadataService, tvShowPath, seasonPath));
 }
 public SeasonImagesViewModel(ITvShowViewModelFactory viewModelFactory,
     ITvShowMetadataService metadataService,
     string tvShowPath,
     string seasonPath)
 {
     PosterUrl = viewModelFactory.GetImage(true, new SeasonPosterImageStrategy(metadataService, tvShowPath, seasonPath));
     BannerUrl = viewModelFactory.GetImage(false, new SeasonBannerImageStrategy(metadataService, tvShowPath, seasonPath));
 }
 public SeasonViewModelTests()
 {
     _viewModelFactory  = Substitute.For <ITvShowViewModelFactory>();
     _tvShowFileService = Substitute.For <ITvShowFileService>();
     _tvShowMetadata    = Substitute.For <ITvShowViewModel>();
     _busyProvider      = _busyProvider = Substitute.For <IBusyProvider>();
     _path      = @"C:\Folder\TV Shows\Game of Thrones\Season 1";
     _viewModel = new SeasonViewModel(_viewModelFactory, _tvShowFileService, _tvShowMetadata, null, _busyProvider, _path);
 }
 public SeasonViewModelTests()
 {
     _viewModelFactory = Substitute.For<ITvShowViewModelFactory>();
     _tvShowFileService = Substitute.For<ITvShowFileService>();
     _tvShowMetadata = Substitute.For<ITvShowViewModel>();
     _busyProvider = _busyProvider = Substitute.For<IBusyProvider>();
     _path = @"C:\Folder\TV Shows\Game of Thrones\Season 1";
     _viewModel = new SeasonViewModel(_viewModelFactory, _tvShowFileService, _tvShowMetadata, null, _busyProvider, _path);
 }
Exemple #7
0
        public TvShowManagerViewModel(ITvShowViewModelFactory viewModelFactory, IProgressManagerViewModel progressManager, IBusyProvider busyProvider)
        {
            _viewModelFactory = viewModelFactory;
            _busyProvider     = busyProvider;
            TvShows           = new ObservableCollection <ITvShowViewModel>();

            UpdateAll       = new UpdateAllMetadataCommand <ITvShowViewModel>(TvShows, progressManager, busyProvider);
            FindNewEpisodes = new FindNewEpisodesCommand(TvShows, progressManager, busyProvider);

            Sources = viewModelFactory.GetSourceManager(SourceType.TvShow);
            Sources.SpecificFolders.CollectionChanged += SourceFoldersCollectionChanged;
        }
        public TvShowManagerViewModel(ITvShowViewModelFactory viewModelFactory, IProgressManagerViewModel progressManager, IBusyProvider busyProvider)
        {
            _viewModelFactory = viewModelFactory;
            _busyProvider = busyProvider;
            TvShows = new ObservableCollection<ITvShowViewModel>();

            UpdateAll = new UpdateAllMetadataCommand<ITvShowViewModel>(TvShows, progressManager, busyProvider);
            FindNewEpisodes = new FindNewEpisodesCommand(TvShows, progressManager, busyProvider);

            Sources = viewModelFactory.GetSourceManager(SourceType.TvShow);
            Sources.SpecificFolders.CollectionChanged += SourceFoldersCollectionChanged;
        }
        public EpisodeViewModelTests()
        {
            _metadataService = Substitute.For <IEpisodeMetadataService>();
            _tvShowMetadata  = Substitute.For <ITvShowViewModel>();
            ITvShowViewModelFactory viewModelFactory = Substitute.For <ITvShowViewModelFactory>();

            _busyProvider = _busyProvider = Substitute.For <IBusyProvider>();
            var keyDataStore = Substitute.For <IKeyDataStore>();

            _path      = @"C:\Folder\TV Shows\Game of Thrones\Season 2\3x09.mkv";
            _viewModel = new EpisodeViewModel(viewModelFactory, _metadataService, _tvShowMetadata, null, _busyProvider, null, keyDataStore, _path);
        }
Exemple #10
0
        public TvShowManagerViewModelTests()
        {
            _sourceManagerViewModel = Substitute.For <ISourceManagerViewModel>();
            _sourceManagerViewModel.SpecificFolders
            .Returns(new ObservableCollection <string>());

            _viewModelFactory = Substitute.For <ITvShowViewModelFactory>();
            _viewModelFactory.GetSourceManager(SourceType.TvShow)
            .Returns(_sourceManagerViewModel);

            _busyProvider = Substitute.For <IBusyProvider>();
            _viewModel    = new TvShowManagerViewModel(_viewModelFactory, null, _busyProvider);
        }
        public TvShowManagerViewModelTests()
        {
            _sourceManagerViewModel = Substitute.For<ISourceManagerViewModel>();
            _sourceManagerViewModel.SpecificFolders
                .Returns(new ObservableCollection<string>());

            _viewModelFactory = Substitute.For<ITvShowViewModelFactory>();
            _viewModelFactory.GetSourceManager(SourceType.TvShow)
                .Returns(_sourceManagerViewModel);

            _busyProvider = Substitute.For<IBusyProvider>();
            _viewModel = new TvShowManagerViewModel(_viewModelFactory, null, _busyProvider);
        }
        public TvShowImagesViewModel(ITvShowFileService tvShowFileService,
            ITvShowMetadataService metadataService,
            ITvShowViewModelFactory viewModelFactory,
            ITvShowViewModel metadataViewModel,
            IBusyProvider busyProvider,
            string path)
        {
            _tvShowFileService = tvShowFileService;
            _viewModelFactory = viewModelFactory;
            _busyProvider = busyProvider;
            _path = path;
            SeasonImages = new ObservableCollection<ISeasonImagesViewModel>();

            FanartUrl = viewModelFactory.GetImage(true, new FanartImageStrategy(metadataService, metadataViewModel));
            PosterUrl = viewModelFactory.GetImage(true, new PosterImageStrategy(metadataService, metadataViewModel));
            BannerUrl = viewModelFactory.GetImage(false, new BannerImageStrategy(metadataService, metadataViewModel));
        }
        public TvShowImagesViewModel(ITvShowFileService tvShowFileService,
                                     ITvShowMetadataService metadataService,
                                     ITvShowViewModelFactory viewModelFactory,
                                     ITvShowViewModel metadataViewModel,
                                     IBusyProvider busyProvider,
                                     string path)
        {
            _tvShowFileService = tvShowFileService;
            _viewModelFactory  = viewModelFactory;
            _busyProvider      = busyProvider;
            _path        = path;
            SeasonImages = new ObservableCollection <ISeasonImagesViewModel>();

            FanartUrl = viewModelFactory.GetImage(true, new FanartImageStrategy(metadataService, metadataViewModel));
            PosterUrl = viewModelFactory.GetImage(true, new PosterImageStrategy(metadataService, metadataViewModel));
            BannerUrl = viewModelFactory.GetImage(false, new BannerImageStrategy(metadataService, metadataViewModel));
        }
Exemple #14
0
        public SeasonViewModel(ITvShowViewModelFactory viewModelFactory,
                               ITvShowFileService tvShowFileService,
                               ITvShowViewModel tvShowMetadata,
                               ITvShowMetadataService metadataService,
                               IBusyProvider busyProvider,
                               string path)
            : base(busyProvider, viewModelFactory.GetEpisode(tvShowMetadata, "dummy"))
        {
            _viewModelFactory  = viewModelFactory;
            _tvShowFileService = tvShowFileService;
            _tvShowMetadata    = tvShowMetadata;
            _busyProvider      = busyProvider;
            _path = path;

            _posterUrl = viewModelFactory.GetImage(true, new SeasonPosterImageStrategy(metadataService, tvShowMetadata.Path, path));
            _bannerUrl = viewModelFactory.GetImage(false, new SeasonBannerImageStrategy(metadataService, tvShowMetadata.Path, path));
        }
        public TvShowViewModelTests()
        {
            _viewModelFactory = Substitute.For<ITvShowViewModelFactory>();
            _tvShowFileService = Substitute.For<ITvShowFileService>();
            _metadataService = Substitute.For<ITvShowMetadataService>();
            _busyProvider = Substitute.For<IBusyProvider>();
            _keyDataStore = Substitute.For<IKeyDataStore>();

            _path = @"C:\Folder\TV Shows\Game of Thrones";
            _viewModelFactory = Substitute.For<ITvShowViewModelFactory>();
            IActorManagerViewModel actorManager = Substitute.For<IActorManagerViewModel>();
            actorManager.Actors
                .Returns(new ObservableCollection<IActorViewModel>());
            _viewModelFactory.GetActorManager(_path, Arg.Any<Action>())
                .Returns(actorManager);

            _viewModel = new TvShowViewModel(_viewModelFactory, _tvShowFileService, _metadataService, _busyProvider, null, null, _keyDataStore, _path);
        }
Exemple #16
0
        public TvShowViewModelTests()
        {
            _viewModelFactory  = Substitute.For <ITvShowViewModelFactory>();
            _tvShowFileService = Substitute.For <ITvShowFileService>();
            _metadataService   = Substitute.For <ITvShowMetadataService>();
            _busyProvider      = Substitute.For <IBusyProvider>();
            _keyDataStore      = Substitute.For <IKeyDataStore>();

            _path             = @"C:\Folder\TV Shows\Game of Thrones";
            _viewModelFactory = Substitute.For <ITvShowViewModelFactory>();
            IActorManagerViewModel actorManager = Substitute.For <IActorManagerViewModel>();

            actorManager.Actors
            .Returns(new ObservableCollection <IActorViewModel>());
            _viewModelFactory.GetActorManager(_path, Arg.Any <Action>())
            .Returns(actorManager);

            _viewModel = new TvShowViewModel(_viewModelFactory, _tvShowFileService, _metadataService, _busyProvider, null, null, _keyDataStore, _path);
        }