public async Task <Rank> GetRank(RankedRegion region, int season = -1) { if (Ranks is null || !Ranks.ContainsKey($"{region}:{season}") || Ranks[$"{region}:{season}"].ShouldRefresh) { await LoadRank(region, season); } return(Ranks[$"{region}:{season}"]); }
/// <summary> /// Запрос на ранг игрока /// </summary> /// <param name="region"> регион </param> /// <param name="season"> номер сезона </param> /// <returns></returns> private async Task <Rank> LoadRankAsync(RankedRegion region, int season = -1) { var json = await API.GetAPI().GetAsync($"https://public-ubiservices.ubi.com/v1/spaces/{PlatformSpaceId}/sandboxes/{PlatformUrl}/r6karma/players?board_id=pvp_ranked&profile_ids={ProfileId}®ion_id={region.ToStringValue()}&season_id={season}"); var data = JsonConvert.DeserializeObject <JObject>(json); Rank rank = JsonConvert.DeserializeObject <Rank>(data["players"][ProfileId].ToString()); rank.Name = Rank.Ranks[rank.RankId]; rank.Icon = Rank.RankIcons[rank.RankId]; return(rank); }
private async Task LoadRank(RankedRegion region, int season = -1) { var json = await API.GetAPI().GetAsync($"https://public-ubiservices.ubi.com/v1/spaces/{SpaceId}/sandboxes/{PlatformUrl}/r6karma/players?board_id=pvp_ranked&profile_ids={ProfileId}®ion_id={region.ToStringValue()}&season_id={season}"); var data = JsonConvert.DeserializeObject <JObject>(json); var regionkey = $"{region}:{season}"; if (Ranks is null) { Ranks = new Dictionary <string, Rank>(); } Ranks.Add(regionkey, JsonConvert.DeserializeObject <Rank>(data["players"][ProfileId].ToString())); }
public static string ToStringValue(this RankedRegion region) { switch (region) { case RankedRegion.EU: return("emea"); case RankedRegion.NA: return("ncsa"); case RankedRegion.ASIA: return("apac"); default: throw new ArgumentOutOfRangeException("Region"); } }