internal async Task<bool> MoveScroll(ArticleListScroll scroll) { if (string.IsNullOrEmpty(scroll.NextPageLink)) return false; var request = new ArticleScrollBuilder(_httpClient.BaseAddress, _apiKey).Create(scroll); var result = await _httpClient.SendAsync(request).ConfigureAwait(false); result.EnsureSuccessStatusCode(); var json = await result.Content.ReadAsStringAsync(); return _deserializer.DeserializeInto(json, scroll); }
public bool DeserializeInto(string json, ArticleListScroll scroll) { var token = JObject.Parse(json); scroll.NextPageLink = token["NextPageLink"].Value<string>(); scroll.Count = token["Count"].Value<int>(); scroll.Items = token["Items"].ToObject<Article[]>(); foreach(var item in scroll.Items) { Repair(item); } return true; }
public HttpRequestMessage Create(ArticleListScroll scroll) { var message = CreateGet(); message.RequestUri = new Uri(scroll.NextPageLink); return message; }