Exemple #1
0
        public RlStatsViewModelFixture()
        {
            _frontendRl = new HyperspinFrontend()
            {
                Executable      = "",
                HasSettingsFile = true,
                Path            = Environment.CurrentDirectory + "\\RocketLauncherData"
            };

            //Setup container and bootstrapper
            Bootstrapper    bs        = new Bootstrapper();
            IUnityContainer container = new UnityContainer();

            //Run bootstrapper to get the evtaggregator
            bs.Run();
            ea = ServiceLocator.Current.GetInstance <IEventAggregator>();

            //Register the Types needed and resolve
            container.RegisterType <IRocketLaunchStatProvider, RocketLaunchStatProvider>();
            container.RegisterType <ISettingsHypermint, SettingsRepo>();

            _statRepo    = container.Resolve <IRocketLaunchStatProvider>();
            settingsRepo = container.Resolve <ISettingsHypermint>();
            settingsRepo.HypermintSettings.RlPath = _frontendRl.Path;
        }
Exemple #2
0
 public RlMediaAuditViewModel(IEventAggregator evtAggregator, ISelectedService selectedService,
                              IGameLaunch gameLaunch, ISettingsHypermint settingsRepo, IHyperspinManager hyperspinManager) :
     base(evtAggregator, selectedService, gameLaunch, settingsRepo)
 {
     GamesList = new ListCollectionView(hyperspinManager.CurrentSystemsGames);
     GamesList.CurrentChanged += GamesList_CurrentChanged;
 }
Exemple #3
0
        public SearchOptionsViewModel(IEventAggregator evtAggregator, ISelectedService selectedService, IGameLaunch gameLaunch, ISettingsHypermint settingsRepo) :
            base(evtAggregator, selectedService, gameLaunch, settingsRepo)
        {
            _ea           = evtAggregator;
            _settingsRepo = settingsRepo;
            _selectedSvc  = selectedService;

            SearchOptions = new SearchOptions();
            SearchOptions.PropertyChanged += SearchOptions_PropertyChanged;

            //Search for games with the SearchString from this Vm.
            SearchGamesCommand = new DelegateCommand <string>(x =>
            {
                ScanForGames(x);
            }, (x) => CanSearchGames(x)).ObservesProperty(() => CanSearch);

            //Cancel search with token
            CancelCommand = new DelegateCommand(() =>
            {
                SearchOptions.tokenSource.Cancel();
                CanSearch = true;
            });

            SelectionChanged = new DelegateCommand <IList>(items => { OnMultipleItemsSelectionChanged(items); });
        }
Exemple #4
0
        public SystemsViewModel(IHyperspinManager hyperspinManager,
                                IHyperspinXmlDataProvider hsDataProvider,
                                IEventAggregator eventAggregator,
                                ISettingsHypermint settings,
                                IDialogCoordinator dialogService,
                                ISelectedService selectedService)
        {
            _eventAggregator  = eventAggregator;
            _settingsRepo     = settings;
            _selectedService  = selectedService;
            _dialogService    = dialogService;
            _hyperspinManager = hyperspinManager;

            // Setup the main menu database to read in all systems
            _mainMenuXmlPath = "";
            _mainMenuXmlPath = Path.Combine(
                _settingsRepo.HypermintSettings.HsPath, Root.Databases,
                @"Main Menu\Main Menu.xml");

            SystemItems = new ListCollectionView(_hyperspinManager.Systems);
            SystemItems.CurrentChanged += SystemItems_CurrentChanged;

            //When main menu is selected
            _eventAggregator.GetEvent <MainMenuSelectedEvent>().Subscribe(async x =>
            {
                await OnMainMenuSelected(x);
            });

            _eventAggregator.GetEvent <SystemFilteredEvent>().Subscribe(FilterSystemsByText);
            _eventAggregator.GetEvent <ReorderingSystemsEvent>().Subscribe(x => ReOrderSystems = x);
            _eventAggregator.GetEvent <NewSystemCreatedEvent>().Subscribe(OnSystemCreated);

            //UpdateSystemsAsync(_mainMenuXmlPath);
            //_eventAggregator.GetEvent<AddNewSystemEvent>().Publish("SystemsView");
        }
        public MultiSystemViewModel(IEventAggregator ea, IFileDialogHelper fileService,
                                    IDialogCoordinator dialogService, IHyperspinManager hyperspinManager,
                                    ISettingsHypermint settings, ISelectedService selectedService, ILoggerFacade loggerFacade) : base(loggerFacade)
        {
            _eventAggregator   = ea;
            _fileFolderService = fileService;
            _settingsService   = settings;
            _dialogService     = dialogService;
            _hyperspinManager  = hyperspinManager;
            _selectedService   = selectedService;

            MultiSystemList = new ListCollectionView(_hyperspinManager.MultiSystemGamesList);

            _eventAggregator.GetEvent <AddToMultiSystemEvent>().Subscribe(AddToMultiSystem);
            _eventAggregator.GetEvent <BuildMultiSystemEvent>().Subscribe((x) => OpenBuildMultiSystemDialog());
            _eventAggregator.GetEvent <ScanMultiSystemFavoritesEvent>().Subscribe(async(x) => await ScanFavoritesAsync());

            //Commands
            RemoveGameCommand = new DelegateCommand <GameItemViewModel>(RemoveFromMultisystemList);

            //OpenSearchCommand = new DelegateCommand<string>(async x =>
            //{
            //    await RunCustomDialog();
            //});

            //Used for the save dialog
            CloseCommand = new DelegateCommand(async() =>
            {
                await _dialogService.HideMetroDialogAsync(this, customDialog);
            });

            SelectionChanged = new DelegateCommand <IList>(items => { OnMultipleItemsSelectionChanged(items); });
        }
        //IAuditer auditer
        #region Constructor
        public HsMediaAuditViewModel(ISettingsHypermint settings, IHyperspinManager hsManager,
                                     IEventAggregator eventAggregator, IDialogCoordinator dialogService,
                                     ISelectedService selectedService, IGameLaunch gameLaunch,
                                     ISearchYoutube youtube) : base(eventAggregator, selectedService, gameLaunch, settings)
        {
            _youtube          = youtube;
            _dialogService    = dialogService;
            _hyperspinManager = hsManager;

            CurrentCellChanged =
                new DelegateCommand <object>(selectedGameCell => { SelectedGameCellChanged(selectedGameCell); });

            SearchYoutubeCommand = new DelegateCommand(() =>
            {
                _eventAggregator.GetEvent <GetVideosEvent>().Publish(new object());
                _eventAggregator.GetEvent <NavigateRequestEvent>().Publish("YoutubeView");
            });

            // Runs the auditer for hyperspin
            RunAuditCommand = new DelegateCommand(async() => await RunScan());

            _eventAggregator.GetEvent <HsAuditUpdateEvent>().Subscribe(a =>
            {
                OnHsAuditUpdateEvent(a);
            });

            //Set the observable game to a collection for the view.
            GamesList = new ListCollectionView(_hyperspinManager.CurrentSystemsGames);
            GamesList.CurrentChanged += GamesList_CurrentChanged;
            //GamesList.GroupDescriptions.Add(new PropertyGroupDescription("RomName"));

            _eventAggregator.GetEvent <GamesUpdatedEvent>().Subscribe(GamesUpdated);
        }
Exemple #7
0
        public ExportVideoOptionsViewModel(ILoggerFacade loggerFacade, IAviSynthScripter aviSynthScripter, IEventAggregator ea,
                                           ISettingsHypermint settings, ISelectedService selected) : base(loggerFacade)
        {
            _avisynthScripter = aviSynthScripter;
            _eventAggregator  = ea;
            _settings         = settings;
            _selectedService  = selected;
            exportPath        = Path.Combine(settings.HypermintSettings.ExportPath, "Videos");

            AviSynthOptions = new AviSynthOption();

            _eventAggregator.GetEvent <SystemSelectedEvent>().Subscribe(x => SystemChanged(x));

            //Save the process videos to a an avi synth script.
            SaveScriptCommand = new DelegateCommand(() =>
            {
                _eventAggregator.GetEvent <GetProcessVideosEvent>().Publish();
            });

            _eventAggregator.GetEvent <ReturnProcessVideosEvent>().Subscribe(x =>
            {
                SaveScript(x);
            });

            ProcessScriptCommand = new DelegateCommand(() =>
            {
                ProcessScript();
            });

            OpenExportFolderCommand = new DelegateCommand(() =>
            {
                var dir    = GetSystemExportPath();
                var result = new DirectoryInfo(dir).Open();
            });
        }
Exemple #8
0
        public AddSystemDialogViewModel(IDialogCoordinator dialogService, CustomDialog callingDialog, IHyperspinManager manager,
                                        IEventAggregator ea, IFileDialogHelper fileFolderServic, ISettingsHypermint settings, ISelectedService service)
        {
            _dialogService    = dialogService;
            _hyperspinManager = manager;
            _callingDialog    = callingDialog;
            _eventAggregator  = ea;
            _fileFolderServic = fileFolderServic;
            _settings         = settings;
            _service          = service;

            CloseDialogCommand = new DelegateCommand(async() =>
            {
                await _dialogService.HideMetroDialogAsync(this, callingDialog);
            });

            SelectDatabaseCommand = new DelegateCommand(() =>
            {
                OnSelectDatabase();
            });

            SaveNewSystemCommand = new DelegateCommand(() =>
            {
                OnSaveNewSystem();
            });
        }
        public RlAuditMediaViewModelBase(IEventAggregator ea, IHyperspinManager hyperspinManager, IGameLaunch gameLaunch,
                                         ISettingsHypermint settings,
                                         ISelectedService selected, IRlScan rlScan, IDialogCoordinator dialogService)
        {
            _eventAggregator  = ea;
            _hyperspinManager = hyperspinManager;
            _selectedService  = selected;
            _settings         = settings;
            _dialogService    = dialogService;
            _rlScan           = rlScan;

            //Setup the games list.
            GamesList = new ListCollectionView(_hyperspinManager.CurrentSystemsGames);
            GamesList.CurrentChanged += GamesList_CurrentChanged;

            CurrentCellChanged = new DelegateCommand <object>(selectedGameCell => { OnCurrentCellChanged(selectedGameCell); });

            ScanRlMediaCommand = new DelegateCommand(async() => await ScanForMedia());

            LaunchRlMode = new DelegateCommand <string>((x) =>
            {
                gameLaunch.RocketLaunchGameWithMode(
                    settings.HypermintSettings.RlPath,
                    selected.CurrentSystem, selected.CurrentRomname, x);
            });

            OpenScanRocketMediaFolderCommand = new DelegateCommand <string>(OpenScanRocketMediaFolderAsync);
        }
Exemple #10
0
        public SaveDatabaseDialogViewModel(ISettingsHypermint settingsRepo, IHyperspinManager hyperspinManager,
                                           IHyperspinXmlDataProvider dataProvider, ISelectedService selectedService, IDialogCoordinator dialogService,
                                           IEventAggregator ea)
        {
            _settingsRepo     = settingsRepo;
            _selectedService  = selectedService;
            _eventAggregator  = ea;
            _dialogService    = dialogService;
            _hyperspinManager = hyperspinManager;

            SaveOptions = new SaveOptions();

            //Commands
            SaveXmlCommand = new DelegateCommand(async() =>
            {
                await SaveDatabaseConfirmAsync(SaveOptions.DbName);
            });

            CloseCommand = new DelegateCommand(async() =>
            {
                await _dialogService.HideMetroDialogAsync(this, customDialog);
            });

            //Events
            _eventAggregator.GetEvent <SystemSelectedEvent>().Subscribe(sysName =>
            {
                SaveOptions.DbName = sysName;
            });

            _eventAggregator.GetEvent <SystemDatabaseChanged>().Subscribe(sysName =>
            {
                SaveOptions.DbName = sysName;
            });
        }
Exemple #11
0
 public SidebarViewModel(IEventAggregator eventAggregator,
                         ISettingsHypermint settings, ISelectedService selectedService,
                         IHyperspinManager hyperManager)
 {
     _settingsRepo    = settings;
     _eventAggregator = eventAggregator;
     _selectedService = selectedService;
     _hyperManager    = hyperManager;
 }
        public RlDefaultAuditViewModel(IEventAggregator ea, IHyperspinManager hyperspinManager, IGameLaunch gameLaunch, ISettingsHypermint settings, ISelectedService selected, IRlScan rlScan, IDialogCoordinator dialogService) : base(ea, hyperspinManager, gameLaunch, settings, selected, rlScan, dialogService)
        {
            _rlScan   = rlScan;
            _settings = settings;
            _selected = selected;

            DefaultFolders = new ObservableCollection <RlAudit>();

            ScanDefaultsCommand = new DelegateCommand(async() => await ScanForMedia());
        }
        public StatsViewModel(IRocketLaunchStatProvider statsRepo, IEventAggregator eventAggregator, ISettingsHypermint settingsRepo, IHyperspinManager hyperspinManager)
        {
            _statsRepo        = statsRepo;
            _eventAggregator  = eventAggregator;
            _settingsRepo     = settingsRepo;
            _hyperspinManager = hyperspinManager;

            //Updates the stats when system changed.
            _eventAggregator.GetEvent <SystemSelectedEvent>().Subscribe(async(x) => await UpdateStatsOnSystemChanged(x));
        }
Exemple #14
0
        public HyperMintModelBase(IEventAggregator evtAggregator, ISelectedService selectedService, IGameLaunch gameLaunch, ISettingsHypermint settingsRepo)
        {
            _eventAggregator = evtAggregator;
            _selectedService = selectedService;
            _gameLaunch      = gameLaunch;
            _settingsRepo    = settingsRepo;

            AddMultiSystemCommand = new DelegateCommand(() => AddToMultiSystem());
            LaunchGameCommand     = new DelegateCommand(() => LaunchGame());
        }
        public VideoProcessViewModel(IEventAggregator eventAggregator, ISettingsHypermint settings)
        {
            _settings        = settings;
            _eventAggregator = eventAggregator;
            _eventAggregator.GetEvent <VideoProcessItemAddedEvent>().Subscribe(OnVideoProcessAdded);
            _eventAggregator.GetEvent <VideoProcessItemRemoveEvent>().Subscribe(x => this.VideoProcessItems.Remove(x));

            ProcessListCommand = new DelegateCommand(async() => await ProcessList());

            VideoProcessItems = new ObservableCollection <VideoProcessViewModelItem>();
        }
        public SearchViewModel(
            IEventAggregator eventAggregator,
            ISettingsHypermint settings,
            ISelectedService selectedSrv, IHyperspinManager hyperspinManager,
            IGameLaunch gameLaunch) : base(eventAggregator, selectedSrv, gameLaunch, settings)
        {
            _hyperspinManager = hyperspinManager;
            Systems           = new ListCollectionView(_hyperspinManager.Systems);

            DockSystemsCommand   = new DelegateCommand(() => { SystemsVisible = !SystemsVisible; });
            SelectSystemsCommand = new DelegateCommand <string>(OnSystemsSelected);
        }
        public ShellViewModel(ILoggerFacade loggerFacade, IRegionManager regionManager, IEventAggregator eventAggregator,
                              ISelectedService service, IHyperspinManager hsManager, ISettingsHypermint settings) : base(loggerFacade)
        {
            _regionManager = regionManager;
            _hsManager     = hsManager;
            _service       = service;

            LoadSettings(settings);

            NavigateCommand = new DelegateCommand <string>(Navigate);

            //TODO: Remove this and all subscribers and replace with logging.
            eventAggregator.GetEvent <ErrorMessageEvent>().Subscribe(DisplayError);
        }
Exemple #18
0
        public AvailableVideosViewModel(ILoggerFacade loggerFacade, IEventAggregator eventAggregator, ISettingsHypermint settings) : base(loggerFacade, eventAggregator)
        {
            _eventAggregator = eventAggregator;
            _settings        = settings;

            RandomVideoCommand = new DelegateCommand(() => { });

            base.AddSelectedCommand = new DelegateCommand(() => AddSelected());

            //Events
            _eventAggregator.GetEvent <AddSelectedVideosEvent>().Subscribe(AddSelected);
            _eventAggregator.GetEvent <AddToAvailableVideosEvent>().Subscribe(AddVideo);
            _eventAggregator.GetEvent <RandomVideosEvent>().Subscribe((amount) => GrabRandomVideos(amount));
            _eventAggregator.GetEvent <SystemSelectedEvent>().Subscribe(x => SystemChanged(x));
        }
 /// <summary>
 /// Loads the settings from config into the settings service
 /// </summary>
 /// <param name="settings">The settings.</param>
 private void LoadSettings(ISettingsHypermint settings)
 {
     Log("", Category.Debug, Priority.None);
     //Create settings
     settings.HypermintSettings =
         new Setting
     {
         Author          = Properties.Settings.Default.Author,
         Ffmpeg          = Properties.Settings.Default.Ffmpeg,
         GhostscriptPath = Properties.Settings.Default.GhostscriptPath,
         HsPath          = Properties.Settings.Default.Hyperspin,
         Icons           = Properties.Settings.Default.Icons,
         RlPath          = Properties.Settings.Default.Rocketlauncher,
         RlMediaPath     = Properties.Settings.Default.RocketlauncherMedia,
     };
 }
Exemple #20
0
        public RlFilesViewModel(IEventAggregator ea, ISettingsHypermint settings, ISelectedService selectedService, IDialogCoordinator dialogService)
        {
            _eventAggregator = ea;
            _settings        = settings;
            _selectedService = selectedService;
            _dialogService   = dialogService;

            RlFiles       = new ObservableCollection <RlFileItemViewModel>();
            SelectedNodes = new ObservableCollection <RlFileItemViewModel>();

            _eventAggregator.GetEvent <UpdateFilesEvent>().Subscribe(OnUpdateFiles);

            SelectedItemChangedCommand = new DelegateCommand <RlFileItemViewModel>(FilesSelectionChanged);

            OpenFileFolderCommand = new DelegateCommand(OpenFileFolder);
        }
Exemple #21
0
        public NavBarViewModel(IRegionManager manager, IEventAggregator eventAggregator,
                               ISelectedService selectedService, ISettingsHypermint settings)
        {
            _regionManager   = manager;
            _eventAggregator = eventAggregator;
            _selectedService = selectedService;
            _settings        = settings;

            _eventAggregator.GetEvent <SystemSelectedEvent>().Subscribe(ShowDatabaseOrSearchView);
            _eventAggregator.GetEvent <NavigateRequestEvent>().Subscribe(Navigate);
            _eventAggregator.GetEvent <NavigateMediaPaneRequestEvent>().Subscribe(NavigateMediaPane);
            _eventAggregator.GetEvent <RequestOpenFolderEvent>().Subscribe(OnOpenFolder);

            NavigateCommand = new DelegateCommand <string>(Navigate);

            Navigate("DatabaseDetailsView");
        }
        public DatabasePickerViewModel(IEventAggregator eventAggregator, IHyperspinManager hyperspinManager, ISettingsHypermint settingsRepo,
                                       ISelectedService selectedService)
        {
            _eventAggregator  = eventAggregator;
            _hyperspinManager = hyperspinManager;
            _settingsRepo     = settingsRepo;
            _selectedService  = selectedService;

            this.SystemDatabases = new ListCollectionView(_hyperspinManager.DatabasesCurrentSystem);
            this.GenreDatabases  = new ListCollectionView(_hyperspinManager.DatabasesCurrentGenres);

            OpenFolderCommand = new DelegateCommand <string>(OpenFolder);

            SystemDatabases.CurrentChanged += SystemDatabases_CurrentChanged;

            _eventAggregator.GetEvent <SystemSelectedEvent>().Subscribe(async(x) => await OnSystemChanged(x));
        }
        public SettingsFlyoutViewModel(IFileDialogHelper findDir, ISettingsHypermint settings)
        {
            _hyperMintSettings = settings;
            _fileFolderService = findDir;

            HyperMintSettings = _hyperMintSettings.HypermintSettings;

            //set the ui theme
            CurrentThemeColor = Properties.Settings.Default.GuiColor;
            IsDarkTheme       = Properties.Settings.Default.GuiTheme;

            //Setup themes for combobox binding
            GuiThemes = new ObservableCollection <string>(MahAppTheme.AvailableThemes);

            //setup commands
            SaveSettings = new DelegateCommand(SaveUiSettings);
            FindPath     = new DelegateCommand <string>(LocatePath);
        }
Exemple #24
0
        public ImagePresetViewModel(ISettingsHypermint settingsHypermint, IEventAggregator eventAgg)
        {
            _eventAgg = eventAgg;

            presetPath = settingsHypermint.HypermintSettings.PresetPath + @"\image";

            SavePresetCommand = new DelegateCommand(() =>
            {
                _eventAgg.GetEvent <ImagePresetRequestEvent>().Publish("");
            });

            _eventAgg.GetEvent <ImagePresetRequestedEvent>().Subscribe((x) =>
            {
                SavePreset(x);
            });

            GetPresets("");
        }
        public SidebarOptionsViewModel(IHyperspinManager hyperSpinManager,
                                       IHyperspinXmlDataProvider dataProvider, ISelectedService selected, ISettingsHypermint settings,
                                       IEventAggregator ea, IDialogCoordinator dialogService, IFileDialogHelper fileFolderServic)
        {
            _hyperSpinManager = hyperSpinManager;
            _dataProvider     = dataProvider;
            _dialogService    = dialogService;
            _eventAggregator  = ea;
            _selected         = selected;
            _fileFolderServic = fileFolderServic;
            _settings         = settings;

            AddSystemCommand = new DelegateCommand <string>(async x =>
            {
                await OnAddSystem();
            });

            SaveMainMenuCommand = new DelegateCommand(async() => await SaveMainMenu());
        }
        public IntroVideosViewModel(IRegionManager manager,
                                    IFileFolderChecker fileChecker,
                                    IEventAggregator ea, ISettingsHypermint settings,
                                    ISelectedService selected)
        {
            //Init Services
            _regionManager     = manager;
            _fileFolderChecker = fileChecker;
            _eventAggregator   = ea;
            _settings          = settings;
            _selectedService   = selected;

            //Init collections
            processVideos      = new List <IntroVideo>();
            scannedVideos      = new List <IntroVideo>();
            VideoToProcessList = new ListCollectionView(processVideos);

            //Commands
            //AddSelectedCommand = new DelegateCommand(AddVideos);
            //ScanFormatCommand = new DelegateCommand(ScanFormat);

            SelectionAvailableChanged = new DelegateCommand <IList>(items =>
            {
                OnVideoSelectionAvailableChanged(items);
            });

            SelectionProcessChanged = new DelegateCommand <IList>(items =>
            {
                OnVideoSelectionChanged(items);
            });

            //What?
            try
            {
                //RemoveVideosCommand = new DelegateCommand<string>(RemoveVideos);
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
                throw;
            }
        }
Exemple #27
0
        public DatabaseControlsViewModel(IEventAggregator eventAgg, IUnityContainer container, ISettingsHypermint settings,
                                         IHyperspinManager hsManager, ISelectedService selectedService, IDialogCoordinator dialogService)
        {
            _hyperspinManager = hsManager;
            _eventAgg         = eventAgg;
            _selectedService  = selectedService;
            _dialogService    = dialogService;
            _container        = container;
            _settings         = settings;

            EnableFaveItemsCommand = new DelegateCommand <string>(x => UpdateRows(x, RowUpdateType.Favorite));
            EnableDbItemsCommand   = new DelegateCommand <string>(x => UpdateRows(x, RowUpdateType.Enabled));

            OpenSaveDialogCommand = new DelegateCommand <string>(async x =>
            {
                await RunCustomDialog();
            });

            ScanRomsCommand = new DelegateCommand(async() => await ScanRomsFromRocketLauncherDirsAsync());
        }
        public SearchResultsViewModel(IEventAggregator ea, ISettingsHypermint settingsRepo,
                                      ISelectedService selectedSvc, IHyperspinXmlDataProvider hsXmlPRovider,
                                      IHyperspinManager hyperspinManager)
        {
            _ea               = ea;
            _settingsRepo     = settingsRepo;
            _selectedSvc      = selectedSvc;
            _hsXmlPRovider    = hsXmlPRovider;
            _hyperspinManager = hyperspinManager;

            SearchGames = new ObservableCollection <GameSearch>();
            FoundGames  = new ListCollectionView(SearchGames);

            PageGamesCommand = new DelegateCommand <string>(x => PageGames(x));

            //Scan games on this event
            _ea.GetEvent <OnSearchForGames>().Subscribe(searchOptions => ScanForGamesAsync(searchOptions));

            SelectionChanged = new DelegateCommand <IList>(items => { OnMultipleItemsSelectionChanged(items); });
        }
Exemple #29
0
        public HyperspinManager(ISettingsHypermint settingsRepo, IHyperspinXmlDataProvider hsDataProvider)
        {
            _hsDataProvider    = hsDataProvider;
            _settingsRepo      = settingsRepo;
            _hyperspinFrontEnd = new HyperspinFrontend
            {
                Path = _settingsRepo.HypermintSettings.HsPath
            };

            //init system stuff
            _systemCreator = new SystemCreator(_hyperspinFrontEnd);
            Systems        = new ObservableCollection <MenuItemViewModel>();

            //init games lists
            CurrentSystemsGames  = new ObservableCollection <GameItemViewModel>();
            MultiSystemGamesList = new ObservableCollection <GameItemViewModel>();

            DatabasesCurrentSystem = new ObservableCollection <IFile>();
            DatabasesCurrentGenres = new ObservableCollection <IFile>();
        }
        public MainMenuViewModel(ISettingsHypermint settingsRepo, IEventAggregator ea,
                                 IHyperspinManager hyperspinManager,
                                 ISelectedService selectedService,
                                 IHyperspinXmlDataProvider dataProvider)
        {
            _settingsRepo     = settingsRepo;
            _selectedService  = selectedService;
            _eventAggregator  = ea;
            _dataProvider     = dataProvider;
            _hyperspinManager = hyperspinManager;

            //Init the collections used
            MainMenuItemViewModels            = new ObservableCollection <MainMenuItemViewModel>();
            SelectedMainMenuItem              = new MainMenuItemViewModel();
            MainMenuDatabases                 = new ListCollectionView(MainMenuItemViewModels);
            MainMenuDatabases.CurrentChanged += MainMenuDatabases_CurrentChanged;
            OpenFolderCommand                 = new DelegateCommand <string>(OnOpenDirectory);

            SetMainMenuDatabases("Main Menu");
        }