public async Task <WeatherData> GetWeather(double latitude, double longitude) { UriBuilder builder = new UriBuilder(_baseEndpoint) { Path = $"data/2.5/onecall", Query = $"lat={latitude.ToString(CultureInfo.InvariantCulture)}&lon={longitude.ToString(CultureInfo.InvariantCulture)}&exclude=minutely,hourly,daily,alerts&lang={_lang}&units={_unit}&appid={_serviceKey}" }; OpenWeatherMapDTO weatherResponse = await _requestService.GetAsync <OpenWeatherMapDTO>(builder.Uri); OpenWeatherMapMapper openWeatherMapMapper = new OpenWeatherMapMapper(); WeatherData weather = openWeatherMapMapper.ToDomainEntity(weatherResponse, _runtimeContext.CityName); return(weather); }
public WeatherData ToDomainEntity(OpenWeatherMapDTO openWeatherMapDTO, string cityName) { var input = openWeatherMapDTO.current; var weather = new Weather() { Humidity = input.humidity, Pressure = input.pressure, TemperatureCurrent = Math.Round(input.temp), WindSpeed = input.wind_speed, WeatherDescription = input.weather[0].description, Icon = $"openweathermap{input.weather[0].icon}.png" }; var city = new City { Name = cityName, Latitude = openWeatherMapDTO.lat, Longitude = openWeatherMapDTO.lon }; return(new WeatherData { City = city, Weather = weather }); }