示例#1
0
        public async Task <IDataTransferCollection <AccountAchievement> > GetAccountAchievements(string?accessToken = null)
        {
            var request = new AccountAchievementsRequest(accessToken);

            using var response = await _http.SendAsync(request).ConfigureAwait(false);

            response.EnsureSuccessStatusCode();
            var json = await response.Content.ReadAsStringAsync().ConfigureAwait(false);

            var context = response.Headers.GetCollectionContext();
            var list    = new List <AccountAchievement>(context.ResultCount);

            JsonConvert.PopulateObject(json, list, Json.DefaultJsonSerializerSettings);
            return(new DataTransferCollection <AccountAchievement>(list, context));
        }
示例#2
0
        private async Task <List <string> > GetAllJsonAchievements(HttpClient http, string accessToken)
        {
            var request = new AccountAchievementsRequest(accessToken);

            using var response = await http.SendAsync(request);

            using var responseReader = new StreamReader(await response.Content.ReadAsStreamAsync());
            using var jsonReader     = new JsonTextReader(responseReader);
            response.EnsureSuccessStatusCode();

            // API returns a JSON array but we want a List of JSON objects instead
            var array = await JToken.ReadFromAsync(jsonReader);

            return(array.Children <JObject>().Select(obj => obj.ToString(Formatting.None)).ToList());
        }