Exemple #1
0
        public QueueListViewModel(IQueuedSongDataProvider queuedSongDataProvider,
                                  IUnityContainer unityContainer, IEventAggregator eventAggregator, IRegionManager regionManager, IDjHorsifyService djHorsifyService, ILoggerFacade loggerFacade) : base(loggerFacade)
        {
            _queuedSongDataProvider = queuedSongDataProvider;
            _eventAggregator        = eventAggregator;
            _unityContainer         = unityContainer;
            _regionManager          = regionManager;
            _djHorsifyService       = djHorsifyService;

            QueueItems           = new ObservableCollection <QueueItemViewModel>();
            QueuedCollectionView = CollectionViewSource.GetDefaultView(QueueItems);

            _queuedSongDataProvider.QueueSongs.CollectionChanged += QueueSongs_CollectionChanged;

            PlaySongCommand            = new DelegateCommand <QueueItemViewModel>(PlayQueueItem);
            RemoveSongFromQueueCommand = new DelegateCommand <QueueItemViewModel>(OnRemoveSong);

            #region Queue Control Events

            _eventAggregator.GetEvent <ClearQueueEvent>().Subscribe(OnClearQueue, ThreadOption.PublisherThread);
            _eventAggregator.GetEvent <ShuffleQueueEvent>().Subscribe(OnShuffleQueue, ThreadOption.UIThread);
            _eventAggregator.GetEvent <SkipQueueEvent>().Subscribe(async() => await OnSkipQueueAsync(), ThreadOption.UIThread);

            #endregion
        }
        public PlaylistTabViewModel(IPlaylistService horsifyPlaylistService, IQueuedSongDataProvider queuedSongDataProvider, IRegionManager regionManager, IEventAggregator eventAggregator, ILoggerFacade loggerFacade) : base(loggerFacade)
        {
            _horsifyPlaylistService = horsifyPlaylistService;
            _queuedSongDataProvider = queuedSongDataProvider;
            _eventAggregator        = eventAggregator;
            _regionManager          = regionManager;

            //Create playlist item collection and assign the ICollectionView
            PlayListItemViewModels = new ObservableCollection <PlaylistItemViewModel>();
            PlayListItems          = new ListCollectionView(PlayListItemViewModels);

            //Hook up to the add to Playlist event.
            //Only fires if the key of the dictionary is the same as this playlist name
            _eventAggregator.GetEvent <AddToPlaylistEvent>()
            .Subscribe(OnAddToPlayList, ThreadOption.PublisherThread, false,
                       x => x.ContainsKey(TabHeader));

            ClearItemsCommand   = new DelegateCommand(OnClearItemsCommand);
            SavePlaylistCommand = new DelegateCommand(OnSavePlaylistCommand);
            AddToQueueCommand   = new DelegateCommand <PlaylistItemViewModel>(OnAddToQueue);
            RemoveItemCommand   = new DelegateCommand <PlaylistItemViewModel>(OnRemoveItem);
            PlayItemCommand     = new DelegateCommand <PlaylistItemViewModel>(OnPlayItem);

            SelectSongCommand = new DelegateCommand <PlaylistItemViewModel>(OnShowSongInfo);
        }
        public SearchedSongsViewModel(ISongDataProvider songDataProvider,
                                      IQueuedSongDataProvider queuedSongDataProvider, ISearchHistoryProvider searchHistory, IVoiceControl voiceControl,
                                      IEventAggregator eventAggregator, IRegionManager regionManager, IDjHorsifyService djHorsifyService, ILoggerFacade loggerFacade) : base(queuedSongDataProvider, eventAggregator, loggerFacade)
        {
            _eventAggregator = eventAggregator;
            _regionManager   = regionManager;

            _djHorsifyService = djHorsifyService;
            _voiceControl     = voiceControl;
            _voiceControl.VoiceCommandSent += _voiceControl_VoiceCommandSent;

            _songDataProvider = songDataProvider;
            _searchHistory    = searchHistory;
            RecentSearch      = new RecentSearch();

            SearchedSongs = _songDataProvider.SearchedSongs;
            SongsListView = new ListCollectionView(_songDataProvider.SearchedSongs);

            SongsListView.CurrentChanged += SongsListView_CurrentChanged;

            //Dialog requests
            RequestRandomViewRequest = new InteractionRequest <INotification>();
            RequestSortDialogRequest = new InteractionRequest <INotification>();
            RequestViewCommand       = new DelegateCommand <string>((viewName) => OnRequestView(viewName));
        }
Exemple #4
0
        public QueueControlViewModel(IQueuedSongDataProvider queuedSongDataProvider, IEventAggregator eventAggregator)
        {
            _eventAggregator        = eventAggregator;
            _queuedSongDataProvider = queuedSongDataProvider;

            ClearCommand   = new DelegateCommand(OnClearQueue);
            SkipCommand    = new DelegateCommand(OnSkipQueue);
            ShuffleCommand = new DelegateCommand(OnShuffleQueue);
        }
Exemple #5
0
        public HorsifySongPlayBindableBase(IQueuedSongDataProvider queuedSongDataProvider, IEventAggregator eventAggregator, ILoggerFacade loggerFacade) : base(loggerFacade)
        {
            _queuedSongDataProvider = queuedSongDataProvider;
            _eventAggregator        = eventAggregator;

            PlayCommand      = new DelegateCommand(OnPlay);
            PlaySongCommand  = new DelegateCommand <AllJoinedTable>(OnPlay);
            QueueSongCommand = new DelegateCommand <AllJoinedTable>(OnQueueSong);
            QueueCommand     = new DelegateCommand(OnQueue);
        }
Exemple #6
0
        public SongSelectedViewModel(IQueuedSongDataProvider queuedSongDataProvider, IEventAggregator eventAggregator, IRegionManager regionManager, ILoggerFacade loggerFacade) : base(loggerFacade)
        {
            _eventAggregator        = eventAggregator;
            _regionManager          = regionManager;
            _queuedSongDataProvider = queuedSongDataProvider;

            CloseViewCommand     = new DelegateCommand(OnGoBack);
            PlayCommand          = new DelegateCommand(OnPlay);
            QueueSongsCommand    = new DelegateCommand(OnQueueSong);
            SearchSongsCommand   = new DelegateCommand <string>(OnSearchSongs);
            AddToPlayListCommand = new DelegateCommand <AllJoinedTable>(OnAddToPlayListCommand);
        }
        public InstantSearchViewModel(ISongDataProvider songDataProvider, IHorsifySongApi horsifySongApi, IRegionManager regionManager,
                                      IEventAggregator eventAggregator, IQueuedSongDataProvider queuedSongDataProvider, ILoggerFacade loggerFacade)
            : base(queuedSongDataProvider, eventAggregator, loggerFacade)
        {
            _songDataProvider = songDataProvider;
            _horsifySongApi   = horsifySongApi;
            _eventAggregator  = eventAggregator;
            _regionManager    = regionManager;

            _dispatcherTimer.Interval = TimeSpan.FromMilliseconds(1000);
            _dispatcherTimer.Tick    += _dispatcherTimer_Tick;

            SearchModel.PropertyChanged += SearchModel_PropertyChanged;

            ShowSearchKeyboardViewCommand = new DelegateCommand <object>(OnShowSearchKeyboard);

            SearchResults = new ListCollectionView(SearchModel.AllJoinedTables);
            SearchResults.CurrentChanged += SearchResults_CurrentChanged;
        }