Пример #1
0
        internal LeaderboardResult HandleLeaderboardResponse(Task <XboxLiveHttpResponse> responseTask, LeaderboardQuery query)
        {
            XboxLiveHttpResponse response = responseTask.Result;

            LeaderboardResponse lbResponse = JsonSerialization.FromJson <LeaderboardResponse>(response.ResponseBodyString);

            IList <LeaderboardColumn> columns = new List <LeaderboardColumn> {
                lbResponse.LeaderboardInfo.Column
            };

            IList <LeaderboardRow> rows = new List <LeaderboardRow>();

            foreach (LeaderboardRowResponse row in lbResponse.Rows)
            {
                LeaderboardRow newRow = new LeaderboardRow
                {
                    Gamertag   = row.Gamertag,
                    Percentile = row.Percentile,
                    Rank       = row.Rank,
                    XboxUserId = row.XboxUserId,
                    Values     = row.Value != null ? new List <string> {
                        row.Value
                    } : row.Values,
                };
                rows.Add(newRow);
            }

            LeaderboardQuery  nextQuery = new LeaderboardQuery(query, lbResponse.PagingInfo != null ? lbResponse.PagingInfo.ContinuationToken : null);
            LeaderboardResult result    = new LeaderboardResult(lbResponse.LeaderboardInfo.TotalCount, columns, rows, nextQuery);

            return(result);
        }
Пример #2
0
        internal LeaderboardResult HandleLeaderboardResponse(LeaderboardRequest request, Task <XboxLiveHttpResponse> responseTask, LeaderboardQuery nextQuery)
        {
            XboxLiveHttpResponse response = responseTask.Result;

            LeaderboardResponse lbResponse = JsonSerialization.FromJson <LeaderboardResponse>(response.ResponseBodyString);

            IList <LeaderboardColumn> columns = new List <LeaderboardColumn>()
            {
                lbResponse.LeaderboardInfo.Column
            };

            IList <LeaderboardRow> rows = new List <LeaderboardRow>();

            foreach (LeaderboardRowResponse row in lbResponse.Rows)
            {
                LeaderboardRow newRow = new LeaderboardRow()
                {
                    Gamertag   = row.Gamertag,
                    Percentile = row.Percentile,
                    Rank       = row.Rank,
                    XboxUserId = row.XboxUserId,
                };
                if (row.Value != null)
                {
                    newRow.Values = new List <string>();
                    newRow.Values.Add(row.Value);
                }
                else
                {
                    newRow.Values = row.Values;
                }
                rows.Add(newRow);
            }
            if (lbResponse.PagingInfo != null)
            {
                nextQuery.ContinuationToken = lbResponse.PagingInfo.ContinuationToken;
            }

            LeaderboardResult result = new LeaderboardResult(lbResponse.LeaderboardInfo.TotalCount, columns, rows, userContext, xboxLiveContextSettings, appConfig)
            {
                NextQuery = nextQuery
            };

            return(result);
        }