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 SearchHistoryViewModel( ISearchHistoryProvider searchHistoryProvider, ICatalogProvider catalogProvider, INavigationService navigationService ) { _searchHistoryProvider = searchHistoryProvider; _catalogProvider = catalogProvider; _navigationService = navigationService; RegisterAction(LoadHistoryPart).AddPart((session) => LoadHistory(session), (session) => true); RegisterAction(LoadBooksPart).AddPart((session) => SearchBooks(session), (session) => true); RegisterAction(AddToHistoryPart).AddPart((session) => AddToHistory(session), (session) => true); RegisterAction(RemoveFromHistoryPart).AddPart((session) => RemoveFromHistory(session), (session) => true); SearchQueries = new XCollection<SearchQuery>(); }