Exemple #1
0
        /// <summary>
        /// Claim Season Rewards.
        /// </summary>
        /// <param name="rewardRequest">Detail information for the Reward Request.</param>
        /// <param name="callback">Returns a Result that contains SeasonClaimRewardResponse via callback when completed.</param>
        public void ClaimRewards(SeasonClaimRewardRequest rewardRequest, ResultCallback <SeasonClaimRewardResponse> callback)
        {
            Report.GetFunctionLog(this.GetType().Name);

            if (!this.session.IsValid())
            {
                callback.TryError(ErrorCode.IsNotLoggedIn);
                return;
            }

            this.coroutineRunner.Run(this.api.ClaimRewards(this.@namespace, this.session.AuthorizationToken, this.session.UserId, rewardRequest, callback));
        }
        public IEnumerator ClaimRewards(string @namespace, string accessToken, string userId, SeasonClaimRewardRequest rewardRequest,
                                        ResultCallback <SeasonClaimRewardResponse> callback)
        {
            Report.GetFunctionLog(this.GetType().Name);
            Assert.IsNotNull(@namespace, "Can't Claim Rewards! Namespace parameter is null!");
            Assert.IsNotNull(accessToken, "Can't Claim Rewards! AccessToken parameter is null!");
            Assert.IsNotNull(userId, "Can't Claim Rewards! AccessToken parameter is null!");

            var request = HttpRequestBuilder
                          .CreatePost(this.baseUrl + "/public/namespaces/{namespace}/users/{userId}/seasons/current/rewards")
                          .WithPathParam("namespace", @namespace)
                          .WithPathParam("userId", userId)
                          .WithContentType(MediaType.ApplicationJson)
                          .WithBody(rewardRequest.ToUtf8Json())
                          .WithBearerAuth(accessToken)
                          .Accepts(MediaType.ApplicationJson)
                          .GetResult();

            IHttpResponse response = null;

            yield return(this.httpClient.SendRequest(request, rsp =>
            {
                response = rsp;
            }));

            var result = response.TryParseJson <SeasonClaimRewardResponse>();

            callback.Try(result);
        }