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)); }
public QueueControlViewModel(IQueuedSongDataProvider queuedSongDataProvider, IEventAggregator eventAggregator) { _eventAggregator = eventAggregator; _queuedSongDataProvider = queuedSongDataProvider; ClearCommand = new DelegateCommand(OnClearQueue); SkipCommand = new DelegateCommand(OnSkipQueue); ShuffleCommand = new DelegateCommand(OnShuffleQueue); }
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); }
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; }