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>();
		}