コード例 #1
0
ファイル: Form1.cs プロジェクト: TRINOBANTUM/WeatherAPIClient
        //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);
        }
コード例 #2
0
        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)
            });
        }
コード例 #3
0
        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);
            }
        }
コード例 #4
0
 public IWeatherData BBCToGeneric(BbcWeatherResult data)
 {
     return(new GenericWeatherData(data.Location, data.TemperatureCelsius, data.WindSpeedKph));
 }