Ejemplo n.º 1
0
 private string GetRequestUrl(ForecastRequest forecastRequest, string api)
 {
     return $"http://api.openweathermap.org/data/2.5/{api}?q="
            + $"{forecastRequest.Location.City},"
            + $"{forecastRequest.Location.Country}"
            + $"&appid={this.appid}" 
            + $"&units={this.GetUnits(forecastRequest.Units)}";
 }
 public OpenWeatherMapServiceTests()
 {
     this.mockedMessageHandler = new Mock<HttpMessageHandler>();
     this.sut = new OpenWeatherMapService(new HttpClient(this.mockedMessageHandler.Object));
     this.request = new ForecastRequest
                        {
                            Location = new GeoLocation { City = "London", Country = "uk" },
                            Units = MeasureUnits.Celsium
                        };
 }
Ejemplo n.º 3
0
        public async Task<List<DailyForecast>> GetDailyForecastAsync(ForecastRequest forecastRequest, DateTime fromDate, DateTime toDate)
        {
            var url = GetRequestUrl(forecastRequest, "forecast");
            var response = await httpClient.GetStringAsync(url);

            var forecast = JsonConvert.DeserializeObject<DailyForecastResponse>(response);
            var dailyForecasts = forecast.ToDailyForecasts();
            dailyForecasts.Select(df => df.Units = forecastRequest.Units);
            return dailyForecasts.Where(df => df.Date >= fromDate && df.Date<=toDate).ToList();
        }
Ejemplo n.º 4
0
        public async Task<CurrentWeather> GetCurrentWeatherAsync(ForecastRequest forecastRequest)
        {

            var url = GetRequestUrl(forecastRequest, "weather");
            var response = await httpClient.GetStringAsync(url);

            var forecast = JsonConvert.DeserializeObject<CurrentWeatherResponse>(response);
            var currentWeather = forecast.ToCurrentWeather();
            currentWeather.Units = forecastRequest.Units;
            return currentWeather;
        }