public void OnSelected(IGame selectedGame)
        {
            UInt64?GameIDNumber = SteamToolsContext.GetSteamGameID(selectedGame);

            if (GameIDNumber.HasValue)
            {
                bool handled = false;

                if (PluginHelper.StateManager.IsBigBox)
                {
                    BigBoxLogic(ref handled, GameIDNumber.Value);
                }

                if (!handled)
                {
                    if (PluginHelper.StateManager.IsBigBox)
                    {
                        // Start BigPicture first?
                        InstallWithSteamDialog(GameIDNumber.Value);
                    }
                    else
                    {
                        // If we're in BigPicture this will just transparently install, we need to close BigPicture?
                        InstallWithSteamDialog(GameIDNumber.Value);
                    }
                }
            }
        }
 public bool GetIsValidForGame(IGame selectedGame)
 {
     if (SteamToolsContext.IsSteamGame(selectedGame))
     {
         UInt64?GameIDNumber = SteamToolsContext.GetSteamGameID(selectedGame);
         if (GameIDNumber.HasValue)
         {
             SteamContext context       = SteamContext.GetInstance();
             bool?        l_IsInstalled = SteamToolsContext.IsInstalled(GameIDNumber.Value, selectedGame);
             if (l_IsInstalled.HasValue && !l_IsInstalled.Value)
             {
                 return(true);
             }
         }
     }
     return(false);
 }
        private void ScanLocalGames()
        {
            List <IGame> games = new List <IGame>();

            foreach (ListViewItem item in lvPlatforms.Items)
            {
                if (item.Checked)
                {
                    games.AddRange(PluginHelper.DataManager.GetPlatformByName(item.Text).GetAllGames(true, true));
                }
            }
            //List<IGame> games = PluginHelper.DataManager.GetAllGames().ToList();
            pbScanLaunchBox.Maximum = games.Count;
            int index = 0;

            games.ForEach(game =>
            {
                pbScanLaunchBox.Value = ++index;
                if (SteamToolsContext.IsSteamGame(game))
                {
                    UInt64?GameIDNumber = SteamToolsContext.GetSteamGameID(game);
                    if (GameIDNumber.HasValue)
                    {
                        if (!IsInstalled.Contains(GameIDNumber.Value) && (SteamToolsContext.IsInstalled(GameIDNumber.Value, game) ?? false))
                        {
                            IsInstalled.Add(GameIDNumber.Value);
                        }

                        if (!KnownSteamGames.Contains(GameIDNumber.Value))
                        {
                            KnownSteamGames.Add(GameIDNumber.Value);
                        }
                    }
                }
            });
        }
 private static ulong?GetSteamGameID_External(IGame game)
 {
     return(SteamToolsContext.GetSteamGameID(game));
 }