public AlbumViewModel(IMusicFileService musicFileService, IAlbumMetadataService metadataService, IMusicImageUpdater imageUpdater, IMusicViewModelFactory viewModelFactory, IBusyProvider busyProvider, IDialogViewer dialogViewer, IProgressManagerViewModel progressManager, IKeyDataStore keyDataStore, IArtistViewModel artistViewModel, string path) : base(busyProvider, dialogViewer, viewModelFactory.GetTrack("dummy")) { _musicFileService = musicFileService; _metadataService = metadataService; _viewModelFactory = viewModelFactory; _busyProvider = busyProvider; _artistViewModel = artistViewModel; Title = new RequiredPropertyDecorator <string>(new StringCachedPropertyDecorator(keyDataStore, path)); Path = path; CoverArt = viewModelFactory.GetImage(true, new AlbumCoverArtImageStrategy(imageUpdater, this)); Selection = viewModelFactory.GetAlbumSelection(this); Genres = new DashDelimitedCollectionViewModel <string>(s => s); Moods = new DashDelimitedCollectionViewModel <string>(s => s); Styles = new DashDelimitedCollectionViewModel <string>(s => s); Themes = new DashDelimitedCollectionViewModel <string>(s => s); RefreshCommand = new RefreshMetadataCommand(this); UpdateCommand = new UpdateMetadataCommand(this, progressManager, busyProvider); SaveCommand = new SaveMetadataCommand(this); DeleteCommand = new DeleteMetadataCommand(this); }
protected override async Task LoadChildrenInternal() { IEnumerable <TrackFile> tracks = await _musicFileService.GetTracks(Path); foreach (TrackFile track in tracks) { ITrackViewModel trackViewModel = _viewModelFactory.GetTrack(track.Path); Children.Add(trackViewModel); } }