//Dev Note: Rework Dependancy Injection and Dynamic for more API's private async Task <BbcWeatherResult> GetBbcWeatherResultAsync() { BbcWeatherResult bbcWeatherResult = null; HttpResponseMessage response = await bbcweatherclient.GetAsync("weather/london"); if (response.IsSuccessStatusCode) { bbcWeatherResult = await response.Content.ReadAsAsync <BbcWeatherResult>(); } return(bbcWeatherResult); }
public WeatherData ConvertBbcToStandardResult(BbcWeatherResult bbcResult) { if (bbcResult == null) { return(new WeatherData()); } return(new WeatherData { TemperatureC = bbcResult.TemperatureCelsius, TemperatureF = ConvertTemperatures.ConvertCelsiusToFahrenheit(bbcResult.TemperatureCelsius), Location = bbcResult.Location, WindSpeedKph = bbcResult.WindSpeedKph, WindSpeedMph = ConvertDistances.ConvertKilometersToMiles(bbcResult.WindSpeedKph) }); }
public async Task <WeatherResultInCelsiusAndKph> WeatherReaderAsync(HttpClient httpClient) { try { var requestUri = new Uri(_bbcweatherserviceUrl); var request = new HttpRequestMessage(HttpMethod.Get, requestUri); var response = await httpClient.SendAsync(request, new CancellationTokenSource(TimeSpan.FromMilliseconds(30000)).Token); response.EnsureSuccessStatusCode(); BbcWeatherResult bbcWeatherResult = await response.Content.ReadAsAsync <BbcWeatherResult>(); return(new WeatherResultInCelsiusAndKph { Temperature = bbcWeatherResult.TemperatureFahrenheit.ConvertFahrenheitToCelsius(), WindSpeed = bbcWeatherResult.WindSpeedMph.ConvertMphToKph() }); } catch (Exception exception) { throw new HttpRequestException("Bbc Weather API:: Failed to get Weather results", exception); } }
public IWeatherData BBCToGeneric(BbcWeatherResult data) { return(new GenericWeatherData(data.Location, data.TemperatureCelsius, data.WindSpeedKph)); }