protected async Task <T> GetMemberResults <T>(string legislatorsUri, ApiBase apiSvc, Func <string, string> actionToPerformOnJsonOutput = null) where T : class { try { var client = apiSvc.CreateHttpClient(); //TODO RM (Low Priority): Ensure this is async var response = client.GetAsync(legislatorsUri).Result; //var response = await client.GetAsync(legislatorsByZipUri); //TODO Find out why this fails //http://stackoverflow.com/questions/10343632/httpclient-getasync-never-returns-when-using-await-async if (response.IsSuccessStatusCode) { //var responseText = await response.Content.ReadAsStringAsync(); var responseText = response.Content.ReadAsStringAsync().Result; if (actionToPerformOnJsonOutput != null) { responseText = actionToPerformOnJsonOutput(responseText); } var results = JsonConvert.DeserializeObject <T>(responseText); return(results); } else { _logger.Error($"Error occurred retrieving legislators using URI: {legislatorsUri}"); } } catch (Exception e) { _logger.Error("Error retrieving legislators.", e); } return(null); }