protected PlaylistsPageViewPresenterBase(
            IApplicationResources resources,
            IPlaylistsService playlistsService,
            INavigationService navigationService,
            IPlayQueueService playQueueService,
            ISongsCachingService cachingService,
            IApplicationStateService stateService,
            IRadioStationsService radioStationsService,
            ISettingsService settingsService)
        {
            this.resources            = resources;
            this.playlistsService     = playlistsService;
            this.navigationService    = navigationService;
            this.playQueueService     = playQueueService;
            this.cachingService       = cachingService;
            this.stateService         = stateService;
            this.radioStationsService = radioStationsService;
            this.settingsService      = settingsService;

            Func <bool> canExecute = () => this.BindingModel.SelectedItems.Count > 0 &&
                                     this.BindingModel.SelectedItems.All(x => (x.Playlist.PlaylistType == PlaylistType.UserPlaylist && !((UserPlaylist)x.Playlist).IsShared));

            this.PlayCommand       = new DelegateCommand(this.Play);
            this.QueueCommand      = new DelegateCommand(this.Queue, canExecute);
            this.DownloadCommand   = new DelegateCommand(this.Download, canExecute);
            this.UnPinCommand      = new DelegateCommand(this.UnPin, canExecute);
            this.StartRadioCommand = new DelegateCommand(this.StartRadio, () => this.BindingModel != null && this.BindingModel.SelectedItems.Count == 1);
        }
Esempio n. 2
0
        public SearchViewModel(Common.Singletons.Library library, IMessenger messenger, ITrackCriteriaService trackCriteriaService, ITrackSearchService trackSearchService,
                               IPlaylistsService repository, TrackContextMenuViewModel trackContextMenu, IPlayRequestHandler playRequestHandler)
            : base(TabType.Search, IconType.Search, "Library Search")
        {
            _library              = library;
            _messenger            = messenger;
            _repository           = repository;
            _trackCriteriaService = trackCriteriaService;
            _trackSearchService   = trackSearchService;
            _playRequestHandler   = playRequestHandler;

            TrackContextMenu = trackContextMenu;

            Criteria = new ObservableCollection <CriteriaGroupViewModel>();

            AddNewCriteriaGroupCommand = new RelayCommand(OnAddNewCriteriaGroup);
            SearchCommand = new RelayCommand(OnSearch);
            ClearCommand  = new RelayCommand(OnClear);
            SaveAsCriteriaPlaylistCommand = new RelayCommand(OnSaveAsCriteriaPlaylist);
            SaveAsOrderedPlaylistCommand  = new RelayCommand(OnSaveAsOrderedPlaylist);
            PlayCommand        = new RelayCommand(OnPlay);
            EditCommand        = new RelayCommand(OnEdit);
            RemoveGroupCommand = new RelayCommand <CriteriaGroupViewModel>(OnRemoveGroup);

            _library.Updated += OnLibraryUpdated;
        }
 public PlaylistsPageViewPresenter(
     IApplicationResources resources,
     IPlaylistsService playlistsService,
     INavigationService navigationService,
     IPlayQueueService playQueueService,
     ISongsCachingService cachingService,
     IApplicationStateService stateService)
     : base(resources, playlistsService, navigationService, playQueueService, cachingService, stateService)
 {
 }
Esempio n. 4
0
        public PlaylistsViewModel(IPlaylistsService repository, Common.Singletons.Library library, IMessenger messenger,
                                  ITrackSearchService trackSearchService, IPlayRequestHandler playRequestHandler)
            : base(TabType.Playlists, IconType.ListUl, "Playlists")
        {
            _messenger  = messenger;
            _repository = repository;

            OrderedPlaylists  = new OrderedPlaylistsViewModel(this, _messenger, trackSearchService, _repository, playRequestHandler);
            CriteriaPlaylists = new CriteriaPlaylistsViewModel(this, messenger, trackSearchService, _repository, playRequestHandler);
            StandardPlaylists = new StandardPlaylistsViewModel(this, library, messenger, playRequestHandler, trackSearchService, _repository);
        }
        public EditOrderedPlaylistViewModel(IMessenger messenger, IPlaylistsService repository, ITrackSearchService trackSearchService)
            : base(TabType.Playlists, IconType.Cog, "Edit Playlist", messenger, false)
        {
            _trackSearchService = trackSearchService;
            _messenger          = messenger;
            _repository         = repository;

            MoveUpCommand   = new RelayCommand(OnMoveUp);
            MoveDownCommand = new RelayCommand(OnMoveDown);
            RemoveCommand   = new RelayCommand(OnRemove);
        }
 public QueueActionsPopupViewPresenter(
     SelectedItems selectedItems,
     IPlayQueueService playQueueService,
     IPlaylistsService playlistsService)
 {
     this.selectedItems     = selectedItems;
     this.playQueueService  = playQueueService;
     this.playlistsService  = playlistsService;
     this.ShuffleAllCommand = new DelegateCommand(this.ShuffleAll);
     this.PlayCommand       = new DelegateCommand(this.Play);
     this.AddCommand        = new DelegateCommand(this.Add);
 }
Esempio n. 7
0
        public TrackContextMenuViewModel(IArchiveService archiveService, IMessenger messenger, IPlaylistsService playlistsService)
        {
            _archiveService   = archiveService;
            _messenger        = messenger;
            _playlistsService = playlistsService;

            ArchiveTrackCommand  = new RelayCommand(OnArchiveTrack);
            EditTrackCommand     = new RelayCommand(OnEditTrack);
            AddToPlaylistCommand = new RelayCommand <OrderedPlaylist>(OnAddToPlaylist);

            MenuItems = new ObservableCollection <MenuCommand>();
        }
Esempio n. 8
0
 public ClearService(
     IYoutubeProvider youtubeProvider,
     ILogger <ClearService> logger,
     IChannelsService channelsService,
     IVideosService videosService,
     IPlaylistsService playlistsService) :
     base(youtubeProvider, logger)
 {
     this.channelsService  = channelsService;
     this.videosService    = videosService;
     this.playlistsService = playlistsService;
 }
 public PlaylistPageViewPresenter(
     IDependencyResolverContainer container,
     IApplicationResources resources,
     IUserPlaylistsService userPlaylistsService,
     IPlaylistsService playlistsService)
     : base(container)
 {
     this.resources                 = resources;
     this.userPlaylistsService      = userPlaylistsService;
     this.playlistsService          = playlistsService;
     this.RemoveFromPlaylistCommand = new DelegateCommand(this.RemoveFromPlaylist);
 }
Esempio n. 10
0
 public SearchPageViewPresenter(
     IApplicationResources resources,
     ISongsRepository songsRepository,
     IPlaylistsService playlistsService,
     INavigationService navigationService,
     IUserPlaylistsRepository userPlaylistsRepository)
 {
     this.resources               = resources;
     this.songsRepository         = songsRepository;
     this.playlistsService        = playlistsService;
     this.navigationService       = navigationService;
     this.userPlaylistsRepository = userPlaylistsRepository;
 }
Esempio n. 11
0
        public PlayShortcutsViewModel(IPlayRequestHandler playRequestHandler, IPlaylistsService repository, ITrackSearchService trackSearchService,
                                      IMessenger messenger)
        {
            _messenger          = messenger;
            _repository         = repository;
            _playRequestHandler = playRequestHandler;
            _trackSearchService = trackSearchService;

            PlayCommand           = new RelayCommand <Playlist>(OnPlay);
            ShuffleLibraryCommand = new RelayCommand(OnShuffleLibrary);

            Playlists = new ObservableCollection <Playlist>();
        }
Esempio n. 12
0
        public StandardPlaylistsViewModel(PlaylistsViewModel parent, Common.Singletons.Library library, IMessenger messenger, IPlayRequestHandler playRequestHandler,
                                          ITrackSearchService trackSearchService, IPlaylistsService repository)
        {
            _library            = library;
            _messenger          = messenger;
            _playRequestHandler = playRequestHandler;
            _trackSearchService = trackSearchService;
            _repository         = repository;
            _parent             = parent;

            PlayCommand      = new RelayCommand <StandardFilterViewModel>(OnPlay);
            FavouriteCommand = new RelayCommand <StandardFilterViewModel>(OnFavourite);
            Filters          = new ObservableCollection <StandardFilterViewModel>();
        }
Esempio n. 13
0
 public ArchiveService(IUserSettings userSettings, IFileService fileService, ITaggingService taggingService,
                       IConfigSettings configSettings, ILibraryService libraryService, Library library, IPlaylistsService playlistsService,
                       IPlaylist playlist, IDirectoryNamer directoryNamer)
 {
     _fileService      = fileService;
     _taggingService   = taggingService;
     _userSettings     = userSettings;
     _configSettings   = configSettings;
     _libraryService   = libraryService;
     _library          = library;
     _playlistsService = playlistsService;
     _playlist         = playlist;
     _directoryNamer   = directoryNamer;
 }
Esempio n. 14
0
        public EditCriteriaPlaylistViewModel(IMessenger messenger, IPlaylistsService repository, ITrackSearchService trackSearchService,
                                             Common.Singletons.Library library, ITrackCriteriaService trackCriteriaService)
            : base(TabType.Playlists, IconType.Cog, "Edit Playlist", messenger, false)
        {
            _library              = library;
            _messenger            = messenger;
            _trackCriteriaService = trackCriteriaService;
            _trackSearchService   = trackSearchService;
            _repository           = repository;

            AddNewCriteriaGroupCommand = new RelayCommand(OnAddNewCriteriaGroup);
            PreviewResultsCommand      = new RelayCommand(OnPreviewResults);
            RemoveGroupCommand         = new RelayCommand <CriteriaGroupViewModel>(OnRemoveGroup);
        }
Esempio n. 15
0
 public TransferService(
     IYoutubeProvider youtubeProvider,
     ILogger <TransferService> logger,
     string outputFolder,
     IChannelsService channelsService,
     IVideosService videosService,
     IPlaylistsService playlistsService,
     IVideoObfuscateService videoObfuscateService,
     int threshold) : base(youtubeProvider, logger)
 {
     this.outputFolder          = outputFolder;
     this.channelsService       = channelsService;
     this.videosService         = videosService;
     this.playlistsService      = playlistsService;
     this.videoObfuscateService = videoObfuscateService;
     this.threshold             = threshold;
 }
 public UserPlaylistsPageViewPresenter(
     IApplicationResources resources,
     INavigationService navigationService,
     IPlayQueueService playQueueService,
     IPlaylistsService playlistsService,
     IUserPlaylistsService userPlaylistsService,
     ISongsCachingService cachingService,
     IApplicationStateService stateService)
     : base(resources, playlistsService, navigationService, playQueueService, cachingService, stateService)
 {
     this.resources              = resources;
     this.userPlaylistsService   = userPlaylistsService;
     this.stateService           = stateService;
     this.AddPlaylistCommand     = new DelegateCommand(this.AddPlaylist);
     this.EditPlaylistCommand    = new DelegateCommand(this.EditPlaylist, () => this.BindingModel.SelectedItems.Count == 1);
     this.DeletePlaylistsCommand = new DelegateCommand(this.DeletePlaylists, () => this.BindingModel.SelectedItems.Count > 0);
 }
Esempio n. 17
0
 public RadioPageViewPresenter(
     IApplicationResources resources,
     IPlaylistsService playlistsService,
     INavigationService navigationService,
     IPlayQueueService playQueueService,
     ISongsCachingService cachingService,
     IApplicationStateService stateService,
     IRadioWebService radioWebService)
     : base(resources, playlistsService, navigationService, playQueueService, cachingService, stateService)
 {
     this.resources            = resources;
     this.navigationService    = navigationService;
     this.playQueueService     = playQueueService;
     this.radioWebService      = radioWebService;
     this.EditRadioNameCommand = new DelegateCommand(this.EditRadioName, () => this.BindingModel.SelectedItems.Count == 1);
     this.DeleteRadioCommand   = new DelegateCommand(this.DeleteRadio, () => this.BindingModel.SelectedItems.Count > 0);
 }
        public CriteriaPlaylistsViewModel(PlaylistsViewModel parent, IMessenger messenger, ITrackSearchService playlistService,
                                          IPlaylistsService repository, IPlayRequestHandler playRequestHandler)
        {
            _messenger          = messenger;
            _playlistService    = playlistService;
            _parent             = parent;
            _playRequestHandler = playRequestHandler;
            _repository         = repository;

            Playlists = new ObservableCollection <CriteriaPlaylist>();

            AddNewPlaylistCommand = new RelayCommand(OnAddNewPlaylist);
            DeleteCommand         = new RelayCommand <CriteriaPlaylist>(OnDelete);
            EditCommand           = new RelayCommand <CriteriaPlaylist>(OnEdit);
            PlayCommand           = new RelayCommand <CriteriaPlaylist>(OnPlay);
            FavouriteCommand      = new RelayCommand <CriteriaPlaylist>(OnFavourite);
        }
Esempio n. 19
0
        public PlaylistPageViewPresenterBase(IDependencyResolverContainer container)
        {
            this.playQueueService    = container.Resolve <IPlayQueueService>();
            this.metadataEditService = container.Resolve <ISongsService>();
            this.playlistsService    = container.Resolve <IPlaylistsService>();
            this.resources           = container.Resolve <IApplicationResources>();
            this.cachingService      = container.Resolve <ISongsCachingService>();
            this.stateService        = container.Resolve <IApplicationStateService>();
            this.radioWebService     = container.Resolve <IRadioWebService>();
            this.navigationService   = container.Resolve <INavigationService>();

            this.QueueCommand         = new DelegateCommand(this.Queue, () => this.BindingModel != null && this.BindingModel.SongsBindingModel.SelectedItems.Count > 0);
            this.AddToPlaylistCommand = new DelegateCommand(this.AddToPlaylist, () => this.BindingModel != null && this.BindingModel.SongsBindingModel.SelectedItems.Count > 0);
            this.DownloadCommand      = new DelegateCommand(this.Download, () => this.BindingModel != null && this.BindingModel.SongsBindingModel.SelectedItems.Count > 0);
            this.UnPinCommand         = new DelegateCommand(this.UnPin, () => this.BindingModel != null && this.BindingModel.SongsBindingModel.SelectedItems.Count > 0);
            this.RateSongCommand      = new DelegateCommand(this.RateSong);
            this.StartRadioCommand    = new DelegateCommand(this.StartRadio, () => this.BindingModel != null && this.BindingModel.SongsBindingModel.SelectedItems.Count == 1);
        }
Esempio n. 20
0
 public RadioPageViewPresenter(
     IApplicationResources resources,
     IPlaylistsService playlistsService,
     INavigationService navigationService,
     IPlayQueueService playQueueService,
     ISongsCachingService cachingService,
     IApplicationStateService stateService,
     IRadioStationsService radioStationsService,
     ISettingsService settingsService)
     : base(resources, playlistsService, navigationService, playQueueService, cachingService, stateService, radioStationsService, settingsService)
 {
     this.resources            = resources;
     this.navigationService    = navigationService;
     this.playQueueService     = playQueueService;
     this.radioStationsService = radioStationsService;
     this.EditRadioNameCommand = new DelegateCommand(this.EditRadioName, () => this.BindingModel.SelectedItems.Count == 1);
     this.DeleteRadioCommand   = new DelegateCommand(this.DeleteRadio, () => this.BindingModel.SelectedItems.Count > 0 && this.BindingModel.SelectedItems.All(x => !string.IsNullOrEmpty(x.Playlist.Id)));
 }
Esempio n. 21
0
 public SearchService(
     ILogManager logManager,
     IApplicationResources resources,
     INavigationService navigationService,
     IDispatcher dispatcher,
     IPlaylistsService playlistsService,
     ISongsRepository songsRepository,
     IUserPlaylistsRepository playlistsRepository,
     IAlbumArtCacheService albumArtCacheService)
 {
     this.logger               = logManager.CreateLogger("SearchService");
     this.resources            = resources;
     this.navigationService    = navigationService;
     this.dispatcher           = dispatcher;
     this.playlistsService     = playlistsService;
     this.songsRepository      = songsRepository;
     this.playlistsRepository  = playlistsRepository;
     this.albumArtCacheService = albumArtCacheService;
 }
Esempio n. 22
0
        public StartPageViewPresenter(
            IApplicationResources resources,
            ISettingsService settingsService,
            IAuthentificationService authentificationService,
            INavigationService navigationService,
            IPlayQueueService playQueueService,
            IPlaylistsService playlistsService,
            IMainFrameRegionProvider mainFrameRegionProvider,
            IGoogleMusicSessionService sessionService,
            ISearchService searchService,
            ISongsCachingService cachingService,
            IApplicationStateService stateService)
        {
            this.resources               = resources;
            this.settingsService         = settingsService;
            this.authentificationService = authentificationService;
            this.playQueueService        = playQueueService;
            this.navigationService       = navigationService;
            this.playlistsService        = playlistsService;
            this.mainFrameRegionProvider = mainFrameRegionProvider;
            this.sessionService          = sessionService;
            this.searchService           = searchService;
            this.cachingService          = cachingService;
            this.stateService            = stateService;

            Func <bool> canExecute = () => this.BindingModel.SelectedItems.Count > 0 &&
                                     this.BindingModel.SelectedItems.All(x =>
                                                                         x.Playlist.PlaylistType != PlaylistType.Radio ||
                                                                         (x.Playlist.PlaylistType == PlaylistType.UserPlaylist && !((UserPlaylist)x.Playlist).IsShared));

            this.PlayCommand     = new DelegateCommand(this.Play);
            this.QueueCommand    = new DelegateCommand(this.Queue, canExecute);
            this.DownloadCommand = new DelegateCommand(this.Download, canExecute);
            this.UnPinCommand    = new DelegateCommand(this.UnPin, canExecute);

            this.sessionService.SessionCleared += async(sender, args) =>
            {
                await this.DeinitializeAsync();

                this.ShowAuthentificationPopupView();
            };
        }
Esempio n. 23
0
        protected PlaylistsPageViewPresenterBase(
            IApplicationResources resources,
            IPlaylistsService playlistsService,
            INavigationService navigationService,
            IPlayQueueService playQueueService,
            ISongsCachingService cachingService,
            IApplicationStateService stateService)
        {
            this.resources         = resources;
            this.playlistsService  = playlistsService;
            this.navigationService = navigationService;
            this.playQueueService  = playQueueService;
            this.cachingService    = cachingService;
            this.stateService      = stateService;

            this.PlayCommand     = new DelegateCommand(this.Play);
            this.QueueCommand    = new DelegateCommand(this.Queue, () => this.BindingModel.SelectedItems.Count > 0);
            this.DownloadCommand = new DelegateCommand(this.Download, () => this.BindingModel.SelectedItems.Count > 0);
            this.UnPinCommand    = new DelegateCommand(this.UnPin, () => this.BindingModel.SelectedItems.Count > 0);
        }
Esempio n. 24
0
        public PlayQueueService(
            ILogManager logManager,
            IMediaElementContainer mediaElement,
            ISettingsService settingsService,
            ISongsCachingService songsCachingService,
            ICurrentSongPublisherService publisherService,
            IGoogleMusicSessionService sessionService,
            IPlaylistsService playlistsService,
            IRadioWebService radioWebService,
            IEventAggregator eventAggregator)
        {
            this.logger              = logManager.CreateLogger("PlayQueueService");
            this.mediaElement        = mediaElement;
            this.settingsService     = settingsService;
            this.songsCachingService = songsCachingService;
            this.publisherService    = publisherService;
            this.playlistsService    = playlistsService;
            this.radioWebService     = radioWebService;
            this.eventAggregator     = eventAggregator;
            this.currentQueueIndex   = -1;

            this.IsRepeatAll = this.settingsService.GetValue("IsRepeatAllEnabled", defaultValue: false);
            this.IsShuffled  = this.settingsService.GetValue("IsShuffleEnabled", defaultValue: false);

            this.State = QueueState.Unknown;

            this.mediaElement.MediaEnded += async(sender, args) =>
            {
                if (this.CanSwitchToNext())
                {
                    await this.NextSongAsync();
                }
                else
                {
                    this.State = QueueState.Stopped;
                }
            };

            sessionService.SessionCleared += async(sender, args) => { await ClearQueueAsync(); };
            eventAggregator.GetEvent <ReloadSongsEvent>().Subscribe(async(e) => { await ClearQueueAsync(); });
        }
        internal ArtistPageViewPresenter(
            IApplicationResources resources,
            IPlayQueueService playQueueService,
            INavigationService navigationService,
            IPlaylistsService playlistsService,
            IAlbumsRepository albumsRepository,
            ISongsCachingService cachingService,
            IApplicationStateService stateService)
        {
            this.resources         = resources;
            this.playQueueService  = playQueueService;
            this.navigationService = navigationService;
            this.playlistsService  = playlistsService;
            this.albumsRepository  = albumsRepository;
            this.cachingService    = cachingService;
            this.stateService      = stateService;
            this.PlayCommand       = new DelegateCommand(this.Play);
            this.ShowAllCommand    = new DelegateCommand(this.ShowAll);

            this.QueueCommand    = new DelegateCommand(this.Queue, () => this.BindingModel.SelectedItems.Count > 0);
            this.DownloadCommand = new DelegateCommand(this.Download, () => this.BindingModel.SelectedItems.Count > 0);
            this.UnPinCommand    = new DelegateCommand(this.UnPin, () => this.BindingModel.SelectedItems.Count > 0);
        }
Esempio n. 26
0
        public StartPageViewPresenter(
            IApplicationResources resources,
            ISettingsService settingsService,
            IAuthentificationService authentificationService,
            INavigationService navigationService,
            IPlayQueueService playQueueService,
            IPlaylistsService playlistsService,
            IMainFrameRegionProvider mainFrameRegionProvider,
            IGoogleMusicSessionService sessionService,
            ISearchService searchService,
            ISongsCachingService cachingService,
            IApplicationStateService stateService)
        {
            this.resources               = resources;
            this.settingsService         = settingsService;
            this.authentificationService = authentificationService;
            this.playQueueService        = playQueueService;
            this.navigationService       = navigationService;
            this.playlistsService        = playlistsService;
            this.mainFrameRegionProvider = mainFrameRegionProvider;
            this.sessionService          = sessionService;
            this.searchService           = searchService;
            this.cachingService          = cachingService;
            this.stateService            = stateService;

            this.PlayCommand     = new DelegateCommand(this.Play);
            this.QueueCommand    = new DelegateCommand(this.Queue, () => this.BindingModel.SelectedItems.Count > 0);
            this.DownloadCommand = new DelegateCommand(this.Download, () => this.BindingModel.SelectedItems.Count > 0);
            this.UnPinCommand    = new DelegateCommand(this.UnPin, () => this.BindingModel.SelectedItems.Count > 0);

            this.sessionService.SessionCleared += async(sender, args) =>
            {
                await this.DeinitializeAsync();

                this.ShowAuthentificationPopupView();
            };
        }
Esempio n. 27
0
 public PostPlaylist(IPlaylistsService playlistsService)
 {
     _playlistsService = playlistsService ?? throw new ArgumentNullException(nameof(playlistsService));
 }