public async Task <WeatherData> GetWeather(double latitude, double longitude) { UriBuilder builder = new UriBuilder(_baseEndpoint) { Path = $"weather/latest/by-lat-lng", Query = $"lat={latitude.ToString(CultureInfo.InvariantCulture)}&lng={longitude.ToString(CultureInfo.InvariantCulture)}" }; var header = new Dictionary <string, string> { { "x-api-key", _serviceKey } }; AmbeeDTO weatherResponse = await _requestService.GetAsync <AmbeeDTO>(builder.Uri, header); AmbeeMapper ambeeMapper = new AmbeeMapper(); WeatherData weather = ambeeMapper.ToDomainEntity(weatherResponse, _runtimeContext.CityName, _isImperial); return(weather); }
public WeatherData ToDomainEntity(AmbeeDTO ambeeDTO, string cityName, bool isImperial) { var input = ambeeDTO.data; var weather = new Weather() { Humidity = input.humidity, Pressure = input.pressure, TemperatureCurrent = isImperial ? Math.Round(input.temperature) : Math.Round(FahrenheitToCelsius(input.temperature)), WindSpeed = input.windSpeed, WeatherDescription = "", Icon = $"" }; var city = ToWeatherCity(ambeeDTO.data.lat, ambeeDTO.data.lng, cityName); return(new WeatherData { City = city, Weather = weather }); }