public async Task AttachCompletionToAchievements(List <Achievement> achievements)
        {
            if (string.IsNullOrEmpty(SteamID))
            {
                return;
            }

            if (!_cache.TryGetValue(String.Concat(_achievedCacheKey, "_", SteamID), out SteamCommunity.PlayerAchievements playerAchievements))
            {
                SteamClient client = new SteamClient();
                client.Authenticator = APIKeyAuthenticator.ForProtectedResource(Environment.GetEnvironmentVariable("SteamAPIKey"));

                playerAchievements = await SteamCommunity.GetPlayerAchievementsAsync(client, SteamID, 236850);

                _cache.Set(String.Concat(_achievedCacheKey, "_", SteamID), playerAchievements, TimeSpan.FromMinutes(2));
            }

            achievements.ForEach(a => a.Achieved = playerAchievements.Achievements.FirstOrDefault(ac => ac.Name == a.Name)?.IsAchieved ?? false);
        }
        public async Task AttachPercentageToAchievements(List <Achievement> achievements)
        {
            if (!_cache.TryGetValue(_percentageCacheKey, out List <SteamCommunity.GlobalAchievement> achievementPercentages))
            {
                SteamClient client = new SteamClient();
                client.Authenticator = APIKeyAuthenticator.ForProtectedResource(Environment.GetEnvironmentVariable("SteamAPIKey"));

                achievementPercentages = await SteamCommunity.GetGlobalAchievementPercentagesForAppAsync(client, 236850);

                _cache.Set(_percentageCacheKey, achievementPercentages, TimeSpan.FromHours(12));
            }

            Dictionary <string, string> achievementNameMatcher = new Dictionary <string, string>();

            foreach (var achievement in achievements)
            {
                int maxMatch = achievementPercentages.Max(ac => FuzzyMatchAPIName(ac.APIName, achievement.Name));
                achievementNameMatcher.Add(achievement.Name, achievementPercentages.FirstOrDefault(ac => FuzzyMatchAPIName(ac.APIName, achievement.Name) == maxMatch)?.APIName);
            }

            achievements.ForEach(a => a.Percentage = achievementPercentages.FirstOrDefault(ac => ac.APIName == achievementNameMatcher[a.Name])?.Percent ?? 0);
        }