Exemplo n.º 1
0
        public async Task <WeatherData> GetWeather(double latitude, double longitude)
        {
            UriBuilder builder = new UriBuilder(_baseEndpoint)
            {
                Path  = $"forecast/{_serviceKey}/{latitude.ToString(CultureInfo.InvariantCulture)},{longitude.ToString(CultureInfo.InvariantCulture)}",
                Query = $"exclude=[minutely,hourly,daily,alerts,flags]&units={_unit}&lang={_lang}"
            };

            DarkskyDTO weatherResponse = await _requestService.GetAsync <DarkskyDTO>(builder.Uri);

            DarkskyMapper darkskyMapper = new DarkskyMapper();
            WeatherData   weather       = darkskyMapper.ToDomainEntity(weatherResponse, _runtimeContext.CityName);

            return(weather);
        }
Exemplo n.º 2
0
        public WeatherData ToDomainEntity(DarkskyDTO darkskyDTO, string cityName)
        {
            var input   = darkskyDTO.currently;
            var weather = new Weather()
            {
                Humidity           = input.humidity,
                Pressure           = input.pressure,
                TemperatureCurrent = Math.Round(input.temperature),
                WindSpeed          = input.windSpeed,
                WeatherDescription = input.summary,
                Icon = $"{input.icon.Replace('-', '_')}.png"
            };

            var city = ToWeatherCity(darkskyDTO, cityName);

            return(new WeatherData {
                City = city, Weather = weather
            });
        }