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 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);
 }
        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);
        }
 public TvShowViewModelFactory(ISourceService sourceService,
                               IFileSystemService fileSystemService,
                               ITvShowFileService tvShowFileService,
                               ITvShowMetadataService tvShowMetadataService,
                               IEpisodeMetadataService episodeMetadataService,
                               IProgressManagerViewModel progressManagerViewModel,
                               IKeyDataStore keyDataStore,
                               IBusyProvider busyProvider,
                               IDialogViewer dialogViewer,
                               IActorViewModelFactory actorViewModelFactory)
 {
     _sourceService            = sourceService;
     _fileSystemService        = fileSystemService;
     _tvShowFileService        = tvShowFileService;
     _tvShowMetadataService    = tvShowMetadataService;
     _episodeMetadataService   = episodeMetadataService;
     _progressManagerViewModel = progressManagerViewModel;
     _keyDataStore             = keyDataStore;
     _busyProvider             = busyProvider;
     _dialogViewer             = dialogViewer;
     _actorViewModelFactory    = actorViewModelFactory;
 }
 public TvShowViewModelFactory(ISourceService sourceService,
     IFileSystemService fileSystemService,
     ITvShowFileService tvShowFileService,
     ITvShowMetadataService tvShowMetadataService,
     IEpisodeMetadataService episodeMetadataService,
     IProgressManagerViewModel progressManagerViewModel,
     IKeyDataStore keyDataStore,
     IBusyProvider busyProvider,
     IDialogViewer dialogViewer,
     IActorViewModelFactory actorViewModelFactory)
 {
     _sourceService = sourceService;
     _fileSystemService = fileSystemService;
     _tvShowFileService = tvShowFileService;
     _tvShowMetadataService = tvShowMetadataService;
     _episodeMetadataService = episodeMetadataService;
     _progressManagerViewModel = progressManagerViewModel;
     _keyDataStore = keyDataStore;
     _busyProvider = busyProvider;
     _dialogViewer = dialogViewer;
     _actorViewModelFactory = actorViewModelFactory;
 }