public async Task GetGlobalAchievementPercentagesForAppAsync_Should_Succeed()
        {
            var response = await steamInterface.GetGlobalAchievementPercentagesForAppAsync(440);

            Assert.NotNull(response);
            Assert.NotNull(response.Data);
        }
예제 #2
0
        public HashSet <IAchievement> GetAchievements(uint appId)
        {
            var i = new SteamUserStats(_apiKey);
            var achievementsTask = i.GetSchemaForGameAsync(appId);
            HashSet <IAchievement> achievements = new HashSet <IAchievement>();
            var response = achievementsTask.Result.Data;

            if (response.AvailableGameStats == null || response.AvailableGameStats.Achievements == null)
            {
                return(new HashSet <IAchievement>());
            }
            IReadOnlyCollection <SchemaGameAchievementModel> resultList = response.AvailableGameStats.Achievements;

            foreach (SchemaGameAchievementModel a in resultList)
            {
                IAchievement ach = new Achievement(a.DisplayName, a.Description, a.Icon, a.Name);
                achievements.Add(ach);
            }
            var globalPercentageTask = i.GetGlobalAchievementPercentagesForAppAsync(appId);

            foreach (GlobalAchievementPercentageModel globalAchievementPercentageModel in globalPercentageTask.Result.Data)
            {
                IAchievement achievement = achievements.FirstOrDefault(a => a.InternalShortName == globalAchievementPercentageModel.Name);
                if (achievement != null)
                {
                    achievement.GlobalCompletionPercentage = globalAchievementPercentageModel.Percent;
                }
            }
            return(achievements);
        }