Exemple #1
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="communityGameName"></param>
        /// <param name="leaderboardId"></param>
        /// <param name="params"></param>
        /// <param name="progress"></param>
        /// <param name="cancellationToken"></param>
        /// <returns></returns>
        public async Task <LeaderboardEntriesEnvelope> GetLeaderboardEntriesAsync(
            string communityGameName,
            int leaderboardId,
            GetLeaderboardEntriesParams @params = default,
            IProgress <long> progress           = default,
            CancellationToken cancellationToken = default)
        {
            if (disposed)
            {
                throw new ObjectDisposedException(nameof(SteamCommunityDataClient));
            }
            if (communityGameName == null)
            {
                throw new ArgumentNullException(nameof(communityGameName));
            }

            @params = @params ?? new GetLeaderboardEntriesParams();

            var requestUri = $"stats/{communityGameName}/leaderboards/{leaderboardId}/"
                             .SetQueryParams(new
            {
                xml   = 1,
                start = @params.StartRange,
                end   = @params.EndRange,
                v     = GetRandomCacheBustingValue(),
            });
            var response = await http.GetAsync("Get leaderboard entries", requestUri, progress, cancellationToken).ConfigureAwait(false);

            var content = await response.Content.ReadAsStreamAsync().ConfigureAwait(false);

            return((LeaderboardEntriesEnvelope)LeaderboardEntriesEnvelopeSerializer.Deserialize(content));
        }
Exemple #2
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="steamCommunityDataClient"></param>
        /// <param name="appId"></param>
        /// <param name="leaderboardId"></param>
        /// <param name="params"></param>
        /// <param name="progress"></param>
        /// <param name="cancellationToken"></param>
        /// <returns></returns>
        public static Task <LeaderboardEntriesEnvelope> GetLeaderboardEntriesAsync(
            this ISteamCommunityDataClient steamCommunityDataClient,
            uint appId,
            int leaderboardId,
            GetLeaderboardEntriesParams @params = default,
            IProgress <long> progress           = default,
            CancellationToken cancellationToken = default)
        {
            if (steamCommunityDataClient == null)
            {
                throw new ArgumentNullException(nameof(steamCommunityDataClient));
            }

            return(steamCommunityDataClient.GetLeaderboardEntriesAsync(appId.ToString(), leaderboardId, @params, progress, cancellationToken));
        }