private void AddEmulatedGames_Click(object sender, RoutedEventArgs e)
        {
            var window = new EmulatorImportWindow(DialogType.GameImport)
            {
                Owner = this
            };

            if (window.ShowDialog() == true)
            {
                window.Model.AddSelectedGamesToDB();
            }
        }
        private void Window_Loaded(object sender, RoutedEventArgs e)
        {
            BringToForeground();
            NotificationsWin.AutoOpen = true;
            positionManager.RestoreSizeAndLocation(Config);

            Config.PropertyChanged += Config_PropertyChanged;
            Config.FilterSettings.PropertyChanged += FilterSettings_PropertyChanged;

            gamesStats = new GamesStats(GameDatabase.Instance);
            MenuMainMenu.DataContext     = this;
            MenuViewSettings.DataContext = Config;
            FilterSelector.DataContext   = new FilterSelectorConfig(gamesStats, Config.FilterSettings);
            CheckFilterView.DataContext  = Config.FilterSettings;
            GridGamesView.AppSettings    = Config;

            if (!Config.FirstTimeWizardComplete)
            {
                var window = new FirstTimeStartupWindow()
                {
                    Owner = this
                };

                if (window.ShowDialog() == true)
                {
                    config.SteamSettings.IdSource                = window.SteamImportLibByName ? SteamIdSource.Name : SteamIdSource.LocalUser;
                    Config.SteamSettings.AccountId               = window.SteamIdLibImport;
                    Config.SteamSettings.IntegrationEnabled      = window.SteamEnabled;
                    Config.SteamSettings.LibraryDownloadEnabled  = window.SteamImportLibrary;
                    Config.SteamSettings.AccountName             = window.SteamAccountName;
                    Config.GOGSettings.IntegrationEnabled        = window.GOGEnabled;
                    Config.GOGSettings.LibraryDownloadEnabled    = window.GogImportLibrary;
                    Config.OriginSettings.IntegrationEnabled     = window.OriginEnabled;
                    Config.OriginSettings.LibraryDownloadEnabled = window.OriginImportLibrary;
                    Config.UplaySettings.IntegrationEnabled      = window.UplayEnabled;
                    importSteamCatWizard   = window.SteamImportCategories;
                    importSteamCatWizardId = window.SteamIdCategoryImport;

                    if (window.DatabaseLocation == FirstTimeStartupWindow.DbLocation.Custom)
                    {
                        Config.DatabasePath = window.DatabasePath;
                    }
                    else
                    {
                        FileSystem.CreateFolder(Paths.UserProgramDataPath);
                        Config.DatabasePath = System.IO.Path.Combine(Paths.UserProgramDataPath, "games.db");
                    }

                    GameDatabase.Instance.OpenDatabase(Config.DatabasePath);
                    AddInstalledGames(window.ImportedGames);

                    Config.FirstTimeWizardComplete = true;
                    PropertyChanged?.Invoke(this, new PropertyChangedEventArgs("Config"));
                }
            }

            if (!Config.EmulatorWizardComplete)
            {
                GameDatabase.Instance.OpenDatabase(Config.DatabasePath);
                var window = new EmulatorImportWindow(DialogType.Wizard)
                {
                    Owner = this
                };

                if (window.ShowDialog() == true)
                {
                    Config.EmulatorWizardComplete = true;
                }
            }

            if (!Config.MigrationV2PcPlatformAdded)
            {
                GameDatabase.Instance.OpenDatabase(Config.DatabasePath);
                var db = GameDatabase.Instance;
                foreach (var game in db.GamesCollection.Find(a => a.Provider != Provider.Custom).ToList())
                {
                    db.AssignPcPlatform(game);
                    db.UpdateGameInDatabase(game);
                }

                Config.MigrationV2PcPlatformAdded = true;
            }

            LoadGames(Config.UpdateLibStartup);
            CheckUpdate();
            SendUsageData();
            Focus();

            pipeService = new PipeService();
            pipeService.CommandExecuted += PipeService_CommandExecuted;
            pipeServer = new PipeServer(Settings.GetAppConfigValue("PipeEndpoint"));
            pipeServer.StartServer(pipeService);

            var args = Environment.GetCommandLineArgs();

            if (args.Count() > 0 && args.Contains("-command"))
            {
                var commandArgs = args[2].Split(new char[] { ':' });
                var command     = commandArgs[0];
                var cmdArgs     = commandArgs.Count() > 1 ? commandArgs[1] : string.Empty;
                PipeService_CommandExecuted(this, new CommandExecutedEventArgs(command, cmdArgs));
            }
        }