/// <summary> /// Get ranked (seasonal) stats for an array of <see cref="AccountInfo"/>s (latest season) /// </summary> /// <remarks> /// Seasonal stats pre-season 18 are region-independent (pass any region) /// </remarks> public static ILookup <string, SeasonStats> GetSeasonStats <T>(this T client, IEnumerable <AccountInfo> accounts, string region, int seasonId, CancellationToken token = default) where T : Dragon6Client { var filteredGroups = accounts.GroupBy(x => x.Platform); JObject data = null; foreach (var group in filteredGroups) { var request = new SeasonStatsRequest(group) { Season = seasonId, Region = region }; var platformResponse = client.Perform <JObject>(request, token); if (data == null) { data = platformResponse; } else { data.Merge(platformResponse); } } return(data.DeserializeSeasonStats()); }
/// <summary> /// Get ranked (seasonal) stats for an array of <see cref="AccountInfo"/>s (latest season) /// </summary> /// <remarks> /// Seasonal stats pre-season 18 are region-independent (pass any region) /// </remarks> public static IEnumerable <SeasonStats> GetSeasonStats <T>(this T client, IEnumerable <AccountInfo> accounts, string region, int seasonId, CancellationToken token = default) where T : Dragon6Client { var filteredGroups = accounts.GroupBy(x => x.Platform); foreach (var group in filteredGroups) { var request = new SeasonStatsRequest(group) { Season = seasonId, Region = region }; var data = client.Perform <JObject>(request, token); foreach (var id in request.AccountIds) { yield return(data.DeserializeSeasonStatsFor(id)); } } }