예제 #1
0
 set => _setter(_model, value);
예제 #2
0
            /// <summary>
            ///     Intializes and returns a new <see cref="Model"/> instance and populates it from the passed <see cref="_model"/>.
            /// </summary>
            public static Model ToDaily(_model m)
            {
                Model d = new Model();

                if (m.Temp?.Count == 2)
                {
                    d.Temp = new ForecastMinMax()
                    {
                        Min = new ForecastValueUnit()
                        {
                            ObservationTime = m.Temp[0].ObservationTime,
                            Value           = m.Temp[0].Min.Value,
                            Units           = m.Temp[0].Min.Units,
                        },
                        Max = new ForecastValueUnit()
                        {
                            ObservationTime = m.Temp[1].ObservationTime,
                            Value           = m.Temp[1].Max.Value,
                            Units           = m.Temp[1].Max.Units,
                        }
                    };
                }

                if (m.FeelsLike?.Count == 2)
                {
                    d.FeelsLike = new ForecastMinMax()
                    {
                        Min = new ForecastValueUnit()
                        {
                            ObservationTime = m.FeelsLike[0].ObservationTime,
                            Value           = m.FeelsLike[0].Min.Value,
                            Units           = m.FeelsLike[0].Min.Units,
                        },
                        Max = new ForecastValueUnit()
                        {
                            ObservationTime = m.FeelsLike[1].ObservationTime,
                            Value           = m.FeelsLike[1].Max.Value,
                            Units           = m.FeelsLike[1].Max.Units,
                        }
                    };
                }

                if (m.Dewpoint?.Count == 2)
                {
                    d.Dewpoint = new ForecastMinMax()
                    {
                        Min = new ForecastValueUnit()
                        {
                            ObservationTime = m.Dewpoint[0].ObservationTime,
                            Value           = m.Dewpoint[0].Min.Value,
                            Units           = m.Dewpoint[0].Min.Units,
                        },
                        Max = new ForecastValueUnit()
                        {
                            ObservationTime = m.Dewpoint[1].ObservationTime,
                            Value           = m.Dewpoint[1].Max.Value,
                            Units           = m.Dewpoint[1].Max.Units,
                        }
                    };
                }

                if (m.Humidity?.Count == 2)
                {
                    d.Humidity = new ForecastMinMax()
                    {
                        Min = new ForecastValueUnit()
                        {
                            ObservationTime = m.Humidity[0].ObservationTime,
                            Value           = m.Humidity[0].Min.Value,
                            Units           = m.Humidity[0].Min.Units,
                        },
                        Max = new ForecastValueUnit()
                        {
                            ObservationTime = m.Humidity[1].ObservationTime,
                            Value           = m.Humidity[1].Max.Value,
                            Units           = m.Humidity[1].Max.Units,
                        }
                    };
                }

                if (m.WindSpeed?.Count == 2)
                {
                    d.WindSpeed = new ForecastMinMax()
                    {
                        Min = new ForecastValueUnit()
                        {
                            ObservationTime = m.WindSpeed[0].ObservationTime,
                            Value           = m.WindSpeed[0].Min.Value,
                            Units           = m.WindSpeed[0].Min.Units,
                        },
                        Max = new ForecastValueUnit()
                        {
                            ObservationTime = m.WindSpeed[1].ObservationTime,
                            Value           = m.WindSpeed[1].Max.Value,
                            Units           = m.WindSpeed[1].Max.Units,
                        }
                    };
                }

                if (m.WindDirection?.Count == 2)
                {
                    d.WindDirection = new ForecastMinMax()
                    {
                        Min = new ForecastValueUnit()
                        {
                            ObservationTime = m.WindDirection[0].ObservationTime,
                            Value           = m.WindDirection[0].Min.Value,
                            Units           = m.WindDirection[0].Min.Units,
                        },
                        Max = new ForecastValueUnit()
                        {
                            ObservationTime = m.WindDirection[1].ObservationTime,
                            Value           = m.WindDirection[1].Max.Value,
                            Units           = m.WindDirection[1].Max.Units,
                        }
                    };
                }

                if (m.BaroPressure?.Count == 2)
                {
                    d.BaroPressure = new ForecastMinMax()
                    {
                        Min = new ForecastValueUnit()
                        {
                            ObservationTime = m.BaroPressure[0].ObservationTime,
                            Value           = m.BaroPressure[0].Min.Value,
                            Units           = m.BaroPressure[0].Min.Units,
                        },
                        Max = new ForecastValueUnit()
                        {
                            ObservationTime = m.BaroPressure[1].ObservationTime,
                            Value           = m.BaroPressure[1].Max.Value,
                            Units           = m.BaroPressure[1].Max.Units,
                        }
                    };
                }

                if (m.Precipitation?.Count == 1)
                {
                    d.Precipitation = new ForecastMax()
                    {
                        Max = new ForecastValueUnit()
                        {
                            ObservationTime = m.Precipitation[0].ObservationTime,
                            Value           = m.Precipitation[0].Max.Value,
                            Units           = m.Precipitation[0].Max.Units,
                        }
                    };
                }

                d.PrecipitationProbability  = m.PrecipitationProbability ?? null;
                d.PrecipitationAccumulation = m.PrecipitationAccumulation ?? null;
                d.Sunrise = m.Sunrise ?? null;
                d.Sunset  = m.Sunset ?? null;

                if (m.Visibility?.Count == 2)
                {
                    d.Visibility = new ForecastMinMax()
                    {
                        Min = new ForecastValueUnit()
                        {
                            ObservationTime = m.Visibility[0].ObservationTime,
                            Value           = m.Visibility[0].Min.Value,
                            Units           = m.Visibility[0].Min.Units,
                        },
                        Max = new ForecastValueUnit()
                        {
                            ObservationTime = m.Visibility[1].ObservationTime,
                            Value           = m.Visibility[1].Max.Value,
                            Units           = m.Visibility[1].Max.Units,
                        }
                    };
                }

                d.WeatherCode     = m.WeatherCode ?? null;
                d.ObservationTime = m.ObservationTime ?? null;
                d.Latitude        = m.Latitude;
                d.Longitude       = m.Longitude;

                return(d);
            }