public async Task <IEnumerable <Skill> > GetSkillsAsync(string professionName)
        {
            var getProfessionResponse = await GetAsync <JObject>(ApiEndpoints.Profession(professionName));

            var skillIds =
                getProfessionResponse["skills"]
                .Children <JObject>()
                .Select(x => x.Value <string>("id"))
                .ToArray();

            var getSkillsResponse = await GetAsync <JArray>(ApiEndpoints.Skill(skillIds));

            var skills =
                getSkillsResponse
                .Children()
                .Select(x => new Skill
            {
                Name        = x.Value <string>("name"),
                Facts       = ParseSkillFacts(x.Value <JArray>("facts")),
                Description = x.Value <string>("description"),
                Type        = Enum.Parse <SkillTypeEnum>(x.Value <string>("type"))
            })
                .ToArray();

            return(skills);
        }
Пример #2
0
        public async Task <IEnumerable <ItemStat> > GetItemStatsAsync()
        {
            var response = await GetAsync <JArray>(ApiEndpoints.ItemStats);

            var itemStatIds = response.Children().Values <string>();

            response = await GetAsync <JArray>(ApiEndpoints.ItemsStats(itemStatIds));

            var allItemStats =
                response
                .Children()
                .Select(x => new ItemStat
            {
                Id         = x.Value <string>("id"),
                Name       = x.Value <string>("name"),
                Attributes =
                    x.Value <JArray>("attributes")
                    .Children()
                    .Select(attr => new ItemStatAttribute
                {
                    Name       = x.Value <string>("attribute"),
                    Multiplier = x.Value <decimal>("multiplier"),
                    Value      = x.Value <int>("value")
                })
                    .ToArray()
            })
                .ToArray();

            return(allItemStats.Where(x => x.Attributes?.Length >= 3).ToArray());
        }