public async Task <GameInfo> ConvertGameTimePlayedToGameInfo(GameTimePlayed gameTimePlayed, string steamId)
        {
            string gameName = GetGameName(gameTimePlayed.appid);
            int    playtime = (int)Math.Round(gameTimePlayed.playtime_forever / (double)60);
            UserAchievementStats achievementStats = await CalculateAchievements(gameTimePlayed.appid, steamId);

            GameInfo gameInfo = new GameInfo {
                GameName         = gameName,
                AppId            = gameTimePlayed.appid,
                GamePlaytime     = playtime,
                AchievementStats = achievementStats
            };

            return(gameInfo);
        }
        public async Task <UserAchievementStats> CalculateAchievements(int appid, string steamId)
        {
            DebugLog($"App id: {appid}");
            dynamic achievementsObj = await GetAchievementsForGame(appid, steamId);

            dynamic gameInfoObj = await GetGameInfo(appid);

            //DebugLog($"{gameInfoObj.ToString()}");
            //DebugLog($"{achievementsObj.ToString()}");

            // error checking for no achievement information available (ex. appid = 10, game = Counter-Strike)
            if (gameInfoObj["game"] == null || achievementsObj == null || achievementsObj["playerstats"]["achievements"] == null)
            {
                UserAchievementStats achievementStats = new UserAchievementStats
                {
                    NumUserAchievements   = 0,
                    NumGameAchievements   = 0,
                    AchievementPercentage = 0
                };

                return(achievementStats);
            }
            else
            {
                int numUserAchievements = (int)achievementsObj["playerstats"]["achievements"].Count;
                DebugLog($"num user achivements: {numUserAchievements}");
                //DebugLog($"type of numUserAchievements: {achievementsObj["playerstats"]["achievements"].GetType()}");
                //DebugLog($"user achievements: {achievementsObj["playerstats"]["achievements"].ToString()}");

                int numGameAchievements = (int)gameInfoObj["game"]["availableGameStats"]["achievements"].Count;

                DebugLog($"num game achivements: {numGameAchievements}");

                //DebugLog($"type of numGameAchievements: {gameInfoObj["game"]["availableGameStats"]["achievements"].GetType()}");
                //DebugLog($"game achievements: {gameInfoObj["game"]["availableGameStats"]["achievements"].ToString()}");

                int achievementPercentage = (int)Math.Round((numUserAchievements / (double)numGameAchievements) * 100);

                UserAchievementStats achievementStats = new UserAchievementStats
                {
                    NumUserAchievements   = numUserAchievements,
                    NumGameAchievements   = numGameAchievements,
                    AchievementPercentage = achievementPercentage
                };

                return(achievementStats);
            }
        }