public CollectionFoldersViewModel(IContainerProvider container, IFoldersService foldersService, IFileService fileService,
                                          IPlaybackService playbackService, IEventAggregator eventAggregator) : base(container)
        {
            this.foldersService  = foldersService;
            this.fileService     = fileService;
            this.playbackService = playbackService;
            this.eventAggregator = eventAggregator;

            // Commands
            this.JumpSubfolderCommand = new DelegateCommand <string>((subfolderPath) => this.GetSubfoldersAsync(new SubfolderViewModel(subfolderPath, false)));

            // Load settings
            this.LeftPaneWidthPercent = SettingsClient.Get <int>("ColumnWidths", "FoldersLeftPaneWidthPercent");

            // Events
            this.foldersService.FoldersChanged   += FoldersService_FoldersChanged;
            this.playbackService.PlaybackFailed  += (async(_, __) => await this.foldersService.SetPlayingSubFolderAsync(this.Subfolders));
            this.playbackService.PlaybackPaused  += (async(_, __) => await this.foldersService.SetPlayingSubFolderAsync(this.Subfolders));
            this.playbackService.PlaybackResumed += (async(_, __) => await this.foldersService.SetPlayingSubFolderAsync(this.Subfolders));
            this.playbackService.PlaybackSuccess += (async(_, __) => await this.foldersService.SetPlayingSubFolderAsync(this.Subfolders));
            this.playbackService.PlaybackStopped += (async(_, __) => await this.foldersService.SetPlayingSubFolderAsync(this.Subfolders));

            this.eventAggregator.GetEvent <ActiveSubfolderChanged>().Subscribe((activeSubfolder) =>
            {
                this.GetSubfoldersAsync(activeSubfolder as SubfolderViewModel);
            });
        }
Beispiel #2
0
 public FoldersController(IHostingEnvironment appEnv,
                          IArchiveManager archiveManager,
                          IFoldersService foldersService)
 {
     this.appEnv         = appEnv;
     this.archiveManager = archiveManager;
     this.foldersService = foldersService;
 }
 public DefaultMediaManagerApiOperations(IMediaTreeService mediaTree, IImagesService images, IImageService image,
     IFilesService files, IFileService file, IFoldersService folders, IFolderService folder)
 {
     MediaTree = mediaTree;
     Folders = folders;
     Folder = folder;
     Images = images;
     Image = image;
     Files = files;
     File = file;
 }
Beispiel #4
0
 public DefaultMediaManagerApiOperations(IMediaTreeService mediaTree, IImagesService images, IImageService image,
                                         IFilesService files, IFileService file, IFoldersService folders, IFolderService folder)
 {
     MediaTree = mediaTree;
     Folders   = folders;
     Folder    = folder;
     Images    = images;
     Image     = image;
     Files     = files;
     File      = file;
 }
Beispiel #5
0
 public FullPlayerViewModel(IIndexingService indexingService, IRegionManager regionManager,
                            IContainerProvider container, IDialogService dialogService, IFoldersService foldersService)
 {
     this.regionManager   = regionManager;
     this.indexingService = indexingService;
     this.container       = container;
     this.dialogService   = dialogService;
     this.foldersService  = foldersService;
     this.LoadedCommand   = new DelegateCommand(() => this.NagivateToSelectedPage(FullPlayerPage.Collection));
     this.SetSelectedFullPlayerPageCommand = new DelegateCommand <string>(pageIndex => this.NagivateToSelectedPage((FullPlayerPage)Int32.Parse(pageIndex)));
     this.BackButtonCommand       = new DelegateCommand(() => this.NagivateToSelectedPage(FullPlayerPage.Collection));
     this.ManageCollectionCommand = new DelegateCommand(() => this.ManageCollectionAsync());
 }
        public CommonViewModelBase(IContainerProvider container) : base(container)
        {
            // Dependency injection
            this.container         = container;
            this.eventAggregator   = container.Resolve <IEventAggregator>();
            this.indexingService   = container.Resolve <IIndexingService>();
            this.playbackService   = container.Resolve <IPlaybackService>();
            this.searchService     = container.Resolve <ISearchService>();
            this.dialogService     = container.Resolve <IDialogService>();
            this.collectionService = container.Resolve <ICollectionService>();
            this.metadataService   = container.Resolve <IMetadataService>();
            this.i18nService       = container.Resolve <II18nService>();
            this.playlistService   = container.Resolve <IPlaylistService>();
            this.foldersService    = container.Resolve <IFoldersService>();

            // Commands
            this.ShowSelectedTrackInformationCommand = new DelegateCommand(() => this.ShowSelectedTrackInformation());
            this.SelectedTracksCommand = new DelegateCommand <object>((parameter) => this.SelectedTracksHandler(parameter));
            this.EditTracksCommand     = new DelegateCommand(() => this.EditSelectedTracks(), () => !this.IsIndexing);
            this.LoadedCommand         = new DelegateCommand(async() => await this.LoadedCommandAsync());
            this.UnloadedCommand       = new DelegateCommand(async() => await this.UnloadedCommandAsync());
            this.ShuffleAllCommand     = new DelegateCommand(() => this.playbackService.EnqueueAsync(true, false));

            // Events
            this.playbackService.PlaybackFailed      += (_, __) => this.ShowPlayingTrackAsync();
            this.playbackService.PlaybackPaused      += (_, __) => this.ShowPlayingTrackAsync();
            this.playbackService.PlaybackResumed     += (_, __) => this.ShowPlayingTrackAsync();
            this.playbackService.PlaybackStopped     += (_, __) => this.ShowPlayingTrackAsync();
            this.playbackService.PlaybackSuccess     += (_, __) => this.ShowPlayingTrackAsync();
            this.collectionService.CollectionChanged += async(_, __) => await this.FillListsAsync(); // Refreshes the lists when the Collection has changed

            this.foldersService.FoldersChanged += async(_, __) => await this.FillListsAsync();       // Refreshes the lists when marked folders have changed

            this.indexingService.RefreshLists += async(_, __) => await this.FillListsAsync();        // Refreshes the lists when the indexer has finished indexing

            this.indexingService.IndexingStarted += (_, __) => this.SetEditCommands();
            this.indexingService.IndexingStopped += (_, __) => this.SetEditCommands();
            this.searchService.DoSearch          += (searchText) => this.FilterLists();
            this.metadataService.RatingChanged   += MetadataService_RatingChangedAsync;
            this.metadataService.LoveChanged     += MetadataService_LoveChangedAsync;

            // Flags
            this.EnableRating = SettingsClient.Get <bool>("Behaviour", "EnableRating");
            this.EnableLove   = SettingsClient.Get <bool>("Behaviour", "EnableLove");

            // This makes sure the IsIndexing is correct even when this ViewModel is
            // created after the Indexer is started, and thus after triggering the
            // IndexingService.IndexerStarted event.
            this.SetEditCommands();
        }
        public LibraryExplorerViewModel(ILibraryExplorerItemListViewModel itemListViewModel, IFoldersService foldersService,
                                        IAdviseGroupHelper adviseGroupHelper, IViewNavigator viewNavigator, IWindowService windowService)
        {
            ItemListViewModel      = itemListViewModel ?? throw new ArgumentNullException(nameof(itemListViewModel));
            this.foldersService    = foldersService ?? throw new ArgumentNullException(nameof(foldersService));
            this.adviseGroupHelper = adviseGroupHelper ?? throw new ArgumentNullException(nameof(adviseGroupHelper));
            this.viewNavigator     = viewNavigator ?? throw new ArgumentNullException(nameof(viewNavigator));
            this.windowService     = windowService ?? throw new ArgumentNullException(nameof(windowService));

            Messenger.Default.Register <ApplicationLoadedEventArgs>(this, e => OnApplicationLoaded(CancellationToken.None));
            Messenger.Default.Register <LoadParentFolderEventArgs>(this, OnLoadParentFolder);
            Messenger.Default.Register <LoadFolderEventArgs>(this, e => OnLoadFolder(e.Folder));
            Messenger.Default.Register <PlaySongsListEventArgs>(this, OnPlaySongsList);
            Messenger.Default.Register <PlaylistLoadedEventArgs>(this, e => OnPlaylistLoaded(e, CancellationToken.None));
            Messenger.Default.Register <NoPlaylistLoadedEventArgs>(this, _ => OnNoPlaylistLoaded(CancellationToken.None));
            Messenger.Default.Register <NavigateLibraryExplorerToDiscEventArgs>(this, e => OnSwitchToDisc(e.Disc));
        }
        public CollectionFoldersSettingsViewModel(IIndexingService indexingService, IDialogService dialogService,
                                                  ICollectionService collectionservice, IFoldersService foldersService)
        {
            this.indexingService   = indexingService;
            this.dialogService     = dialogService;
            this.collectionservice = collectionservice;
            this.foldersService    = foldersService;

            this.AddFolderCommand = new DelegateCommand <string>((_) => { this.AddFolder(); });

            this.RemoveFolderCommand = new DelegateCommand <long?>(folderId =>
            {
                if (this.dialogService.ShowConfirmation(0xe11b, 16, ResourceUtils.GetString("Language_Remove"), ResourceUtils.GetString("Language_Confirm_Remove_Folder"), ResourceUtils.GetString("Language_Yes"), ResourceUtils.GetString("Language_No")))
                {
                    this.RemoveFolder(folderId.Value);
                }
            });

            this.ShowInCollectionChangedCommand = new DelegateCommand <long?>(folderId =>
            {
                this.ShowAllFoldersInCollection = false;

                lock (this.Folders)
                {
                    this.foldersService.MarkFolderAsync(this.Folders.Where((f) => f.Folder.FolderID == folderId).FirstOrDefault());
                }
            });

            this.ShowAllFoldersInCollection = SettingsClient.Get <bool>("Indexing", "ShowAllFoldersInCollection");

            // Makes sure IsIndexng is set if this ViewModel is created after the indexer has started indexing
            if (this.indexingService.IsIndexing)
            {
                this.IsIndexing = true;
            }

            // These events handle changes of indexer status after the ViewModel is created
            this.indexingService.IndexingStarted += (_, __) => this.IsIndexing = true;
            this.indexingService.IndexingStopped += (_, __) => this.IsIndexing = false;

            this.GetFoldersAsync();
        }
Beispiel #9
0
 public FoldersController(IFoldersService foldersService)
 {
     _foldersService = foldersService;
 }
Beispiel #10
0
 public DiscGrouper(IFoldersService foldersService)
 {
     this.foldersService = foldersService ?? throw new ArgumentNullException(nameof(foldersService));
 }
 public RenameFolderViewModel(IFoldersService foldersService)
 {
     this.foldersService = foldersService ?? throw new ArgumentNullException(nameof(foldersService));
 }
Beispiel #12
0
 public FolderProvider(IFoldersService foldersService)
 {
     this.foldersService = foldersService ?? throw new ArgumentNullException(nameof(foldersService));
 }
 public FoldersController(MyDbContext iEntitiesService, MyDbContext iChatsService)
 {
     this._repo = new FoldersService(iEntitiesService);
     this._chat = new ChatsMessageService(iChatsService);
 }