コード例 #1
0
        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);
        }
コード例 #2
0
        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
            });
        }