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); }
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()); }