예제 #1
0
        /// <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());
        }
예제 #2
0
        /// <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));
                }
            }
        }