public Prediction Predict()
        {
            Prediction p = null;

            if (m_nextpredictor != null)
            {
                p = m_nextpredictor.Predict();
            }
            else
            {
                p = new Prediction();
            }
            if (m_nextpredictor.getData().m_rainchance > 30 && p.cloud > CloudLevel.Cloudy && p.smiley < Smiley.ReallySad)
            {
                p.cloud  = CloudLevel.MildRain;
                p.rain   = 1;
                p.advise = "Rain is Certain. Please Take an Umbrella";
                p.smiley = Smiley.Sad;
            }
            else if (m_nextpredictor.getData().m_rainchance > 50 && p.cloud > CloudLevel.Cloudy && p.smiley < Smiley.Angry)
            {
                p.cloud  = CloudLevel.ThunderStorm;
                p.rain   = 2;
                p.advise = "Thunderstorms predicted. Please stay indoors";
                p.smiley = Smiley.ReallySad;
            }
            return(p);
        }
        public Prediction Predict()
        {
            Prediction p = null;

            if (m_nextpredictor != null)
            {
                p = m_nextpredictor.Predict();
            }
            else
            {
                p = new Prediction();
            }
            if (m_data.m_cloudcover > 95 && p.smiley < Smiley.Sad)
            {
                p.cloud = CloudLevel.OverCast;
                if (p.smiley < Smiley.Sad)
                {
                    p.advise = "Weather cloudy. Might rain";
                    p.smiley = Smiley.OK;
                }
            }
            else if (m_data.m_cloudcover > 70)
            {
                p.cloud = CloudLevel.Cloudy;
                if (p.smiley < Smiley.Sad)
                {
                    p.advise = "Weather looks cloudy and sweet. Might not rain";
                    p.smiley = Smiley.OK;
                }
            }
            else if (m_data.m_cloudcover > 45)
            {
                p.cloud = CloudLevel.PartlyCloudy;
                if (p.smiley < Smiley.OK)
                {
                    p.advise = "Cloudy with a chance of rainbows";
                    p.smiley = Smiley.Happy;
                }
            }
            else
            {
                p.smiley = Smiley.Happy;
                p.cloud  = CloudLevel.Sunny;
            }
            return(p);
        }