Пример #1
0
 public DatabaseCity(ForecastCollection forecastCollection)
 {
     this.Id            = forecastCollection.City.Id;
     this.Name          = forecastCollection.City.Name;
     this.CountryIso    = forecastCollection.City.Country;
     this.TimezoneShift = forecastCollection.City.Timezone;
 }
Пример #2
0
        // Nicht in Verwendung, deshalb private.
        private void WriteForcastCollection(ForecastCollection forecastCollection)
        {
            var    dateOfRequest = forecastCollection.DateOfRequest;
            var    cityId        = forecastCollection.City.Id;
            string values        = "";

            var last = forecastCollection.List.Last();

            foreach (var forecastObject in forecastCollection.List)
            {
                var forecastTime = DateTimeOffset.FromUnixTimeSeconds(forecastObject.Dt).DateTime;
                var temperature  = forecastObject.Main.Temp.ToString(CultureInfo.InvariantCulture);
                var windSpeed    = forecastObject.Wind.Speed.ToString(CultureInfo.InvariantCulture);
                var windDegree   = forecastObject.Wind.Deg;
                var pressure     = forecastObject.Main.Pressure;
                var humidity     = forecastObject.Main.Humidity;

                var tMinus = (int)Math.Ceiling((forecastTime - dateOfRequest).TotalDays);

                values += $"('{forecastTime:yyyy-MM-dd HH:mm:ss}', {cityId}, {temperature}, {windSpeed}, "
                          + $"{windDegree}, {pressure}, {humidity}, {tMinus})";
                if (forecastObject != last)
                {
                    values += ", ";
                }
            }

            try
            {
                OpenDb();
                var command = connection.CreateCommand();
                command.CommandText = $"INSERT INTO forecast VALUES {values}"
                                      + "ON DUPLICATE KEY UPDATE temperature = VALUES(temperature), "
                                      + "wind_speed = VALUES(wind_speed), wind_degree = VALUES(wind_degree), pressure = VALUES(pressure), "
                                      + "pressure = VALUES(pressure), humidity = VALUES(humidity)";
                command.ExecuteNonQuery();
            }
            catch (MySqlException ex)
            {
                MessageBox.Show("WriteForecastCollection: " + ex.Message);
            }
            finally
            {
                CloseDb();
            }
        }