Пример #1
0
 public DarkSkyCurrentWeatherViewModel(DarkSkyWeather darkSkyWeather, string city, string countryCode)
 {
     City        = city;
     Country     = countryCode;
     Temp        = Math.Round(darkSkyWeather.temperature);
     Description = darkSkyWeather.summary.ToUpper();
     Icon        = darkSkyWeather.icon;
 }
Пример #2
0
        public DarkSkyTodayWeatherDetailViewModel(DarkSkyWeather darkSkyWeather)
        {
            var timeLong = darkSkyWeather.time;
            var time     = timeLong.UnixTimestampToLocalDateTimeLong().ToViHour4();

            Time = time;
            Temp = Math.Round(darkSkyWeather.temperature);
            Icon = darkSkyWeather.icon;
        }
        private async Task AddOrUpdateDarkSkyWeather(TodayType type, long time, double latitude, double longitude, string timezone, string summary,
                                                     string icon, double temperature, double apparentTemperature, string username)
        {
            var darkSkyWeather = await _context.DarkSkyWeathers.FirstOrDefaultAsync(m => m.Type == type &&
                                                                                    m.time == time &&
                                                                                    m.latitude == latitude &&
                                                                                    m.longitude == longitude);

            if (darkSkyWeather == null)
            {
                darkSkyWeather = new DarkSkyWeather()
                {
                    latitude            = latitude,
                    longitude           = longitude,
                    timezone            = timezone,
                    time                = time,
                    summary             = summary,
                    icon                = icon,
                    temperature         = temperature,
                    apparentTemperature = apparentTemperature,

                    DateCreated  = DateTime.Now,
                    DateModified = DateTime.Now,
                    UserCreated  = username,
                    UserModified = username,

                    Type = type
                };

                await _context.AddAsync(darkSkyWeather);

                await _context.SaveChangesAsync();

                _logger.LogInformation($"GetDarkSkyWeatherApi {type} add new DarkSkyWeather {darkSkyWeather.Id}");
            }
            else
            {
                darkSkyWeather.summary             = summary;
                darkSkyWeather.icon                = icon;
                darkSkyWeather.temperature         = temperature;
                darkSkyWeather.apparentTemperature = apparentTemperature;

                darkSkyWeather.DateModified = DateTime.Now;
                darkSkyWeather.UserModified = username;

                await _context.SaveChangesAsync();

                _logger.LogInformation($"GetDarkSkyWeatherApi {type} update DarkSkyWeather {darkSkyWeather.Id}");
            }
        }
Пример #4
0
        public async Task <WeatherData> GetWeatherData(double latitude, double longitude)
        {
            DarkSkyWeather darkSkyWeather = await GetWeather(latitude, longitude);

            if (darkSkyWeather != null)
            {
                DayTimeStart = darkSkyWeather.daily.data.FirstOrDefault().sunrise.Hour;
                DayTimeEnd   = darkSkyWeather.daily.data.FirstOrDefault().sunset.Hour;

                return(new WeatherData
                {
                    Description = darkSkyWeather.currently.summary,
                    Sunrise = darkSkyWeather.daily.data.FirstOrDefault().sunrise,
                    Sunset = darkSkyWeather.daily.data.FirstOrDefault().sunset,
                    WeatherForecasts = GetDarkSkyForecasts(darkSkyWeather)
                });
            }

            throw new ArgumentNullException(nameof(darkSkyWeather));
        }
Пример #5
0
        private ICollection <Forecast> GetDarkSkyForecasts(DarkSkyWeather darkSkyWeather)
        {
            List <Forecast> fiveDayOneHourForecasts = (
                from item in darkSkyWeather.hourly.data
                select new Forecast
            {
                StartDateTime = item.dateTime,
                EndDateTime = item.dateTime.AddHours(1).AddSeconds(-1),
                Description = item.summary,
                Temperature = item.temperature,
                Humidity = item.humidity,
                AtmosphericPressure = item.pressure,
                Windspeed = item.windSpeed,
                WindDirection = item.windBearing,
                SkyCon = item.icon,
                Icon = GetIcon(item.icon, (int)item.cloudCover, item.dateTime.Hour),
                CloudCover = item.cloudCover,
                PrecipitationVolume = item.precipIntensity
            }).ToList();

            return(GetThreeHourSummedForecasts(fiveDayOneHourForecasts));
        }
Пример #6
0
 public Weather(DarkSkyWeather darkSkyWeather)
 {
     DarkSky = darkSkyWeather;
 }