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); }
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); }