async Task<RecordMetadata> UpdateData() { String request = String.Format(this._urlTemplate, this._nextPageNum); // Create an HttpClient instance HttpClient client = new HttpClient(); String urlContents = await client.GetStringAsync(request); this._lastData = JsonConvert.DeserializeObject<RecordMetadata>(urlContents); this._currentPage = this._nextPageNum; this._nextPageNum++; //OnRaiseCustomEvent(new DataRetrieverEventArgs(this._lastData)); return this._lastData; /* // Send a request asynchronously continue when complete client.GetAsync(request).ContinueWith( (requestTask) => { // Get HTTP response from completed task. HttpResponseMessage response = requestTask.Result; // Check that response was successful or throw exception //response.EnsureSuccessStatusCode(); if (response.StatusCode == HttpStatusCode.OK) { // Read response asynchronously as JsonValue and write out top facts for each country response.Content.ReadAsStringAsync().ContinueWith( (task) => { if (task.Exception == null) { if (!task.IsCanceled) { this._lastData = JsonConvert.DeserializeObject<RecordMetadata>(task.Result); this._currentPage = this._nextPageNum; this._nextPageNum++; OnRaiseCustomEvent(new DataRetrieverEventArgs(this._lastData)); } } } ); } else { System.Threading.Thread.Sleep(100); Console.WriteLine("re-try"); this._nextPageNum++; UpdateData(); } }); */ //_wc.DownloadDataAsync(new Uri(request)); }
/// <summary> /// Starts an asynchronous request for the first page /// </summary> public async Task<RecordMetadata> GetFirstPage() { this._lastData = null; this._nextPageNum = 1; return await UpdateData(); }
public DataRetriever() { _lastData = null; }
public DataRetrieverEventArgs(RecordMetadata rm) { this.rm = rm; }
/// <summary> /// Starts an asynchronous request for the first page /// </summary> public async Task <RecordMetadata> GetFirstPage() { this._lastData = null; this._nextPageNum = 1; return(await UpdateData()); }