protected override async Task <bool> ReadDataAsync() { try { _logging.LogInformation("Sending request to read data..."); JsonPlaceholderApiRequest apiRequest = new JsonPlaceholderApiRequest() { Uri = _appSettings.JsonPlaceholderSettings.Uri, Accept = _appSettings.JsonPlaceholderSettings.Accept, UserAgent = _appSettings.JsonPlaceholderSettings.UserAgent }; _repoList = await _importRepository.GetAsync(apiRequest); _logging.LogInformation("Completed request successfully."); } catch (Exception ex) { _logging.LogError(ex, "An error occurred when getting the reading the data."); return(false); } return(true); }
public async Task Test_JsonPlaceholderRepository_GetAsync() { JsonPlaceholderApiRequest apiRequest = new JsonPlaceholderApiRequest() { Uri = "http://jsonplaceholder.typicode.com/users", Accept = "application/json", UserAgent = "Import-Export-Tool" }; IJsonPlaceholderRepository repository = new JsonPlaceholderRepository(); IEnumerable <JsonPlaceholderUserDetails> list = await repository.GetAsync(apiRequest); Assert.IsNotNull(list); if (list != null) { foreach (JsonPlaceholderUserDetails item in list) { System.Diagnostics.Debug.WriteLine($"{item.Id} | {item.UserName} | {item.Name} | {item.Email}"); System.Diagnostics.Debug.WriteLine($"{item.Address.Street}, {item.Address.ZipCode}"); System.Diagnostics.Debug.WriteLine($"{item.Address.Geo.Lattitude}, {item.Address.Geo.Longitude}"); System.Diagnostics.Debug.WriteLine($"{item.Company.Name} | {item.Company.CatchPhrase} \n"); } } }
public async Task <IEnumerable <JsonPlaceholderUserDetails> > GetAsync(JsonPlaceholderApiRequest apiRequest) { client.DefaultRequestHeaders.Accept.Clear(); client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue(apiRequest.Accept)); client.DefaultRequestHeaders.Add("User-Agent", apiRequest.UserAgent); var streamTask = await client.GetStreamAsync(apiRequest.Uri); var list = await JsonSerializer.DeserializeAsync <List <JsonPlaceholderUserDetails> >(streamTask); return(list); }