Пример #1
0
        public void CurrentConditionsSubscriber_NotifyFirstChange_Temperature()
        {
            var wdp = new WeatherDataProvider();
            var ccs = new CurrentConditionsSubscriber(wdp);

            wdp.SetMeasurements(10, 20, 30);

            Assert.That(ccs.Data.Temperature, Is.EqualTo(10.0).Within(0.001));
        }
Пример #2
0
        public void CurrentConditionsSubscriber_NotifySecondChange_Temperature()
        {
            var wdp = new WeatherDataProvider();
            var ccs = new CurrentConditionsSubscriber(wdp);

            wdp.Notify(10, 20, 30);
            wdp.Notify(40, 50, 60);

            Assert.That(ccs.Data.Temperature, Is.EqualTo(40.0).Within(0.001));
        }
Пример #3
0
        /// <summary>
        ///     Esta tecnica, hace uso de las interfaces proveidas por el framework
        ///     <see cref="IObservable{T}" /> <see cref="IObserver{T}" />
        /// </summary>
        private static void TechniqueUsingNet()
        {
            var provider     = new WeatherDataProvider();              //creamos el proveedor
            var currentDisp  = new CurrentConditionsDisplay(provider); //Suscribimos a [Condiciones actuales] al proveedor
            var forecastDisp = new ForecastDisplay(provider);          //Suscribimos a [Prediciones del clima] al proveedor

            provider.SetMeasurements(40, 78, 3);                       //Indicamos al proveedor unas condiciones de clima
            Console.WriteLine();
            provider.SetMeasurements(45, 79, 4);                       //..
            Console.WriteLine();
            provider.SetMeasurements(46, 73, 6);                       //..
            //Remove forecast display
            forecastDisp.Unsubscribe();                                // Desinscribimos a [Prediciones del clima] debido a que éste ya no desea ser notificado
            Console.WriteLine();
            provider.SetMeasurements(36, 53, 8);                       //Comprobamos que al indicar unas nuevas condiciones de clima, el observador [Prediciones del clima] ya no es notificado
            Console.Read();
        }
Пример #4
0
        public WeatherViewBViewModel(WeatherDataProvider weatherDataProvider)
        {
            _weatherDataProvider = weatherDataProvider;

            _preparedForecastsCollection = new ObservableCollection <PreparedForecast>();

            DateTime date = DateTime.Parse(_weatherDataProvider.HourlyForecastList[0].DateTime);

            foreach (var element in _weatherDataProvider.HourlyForecastList)
            {
                DateTime dateTime = DateTime.Parse(element.DateTime);
                string   img      = "Resources/" + element.WeatherIcon + "-s.png";
                string   temp     = element.Temperature.Value.ToString() + "°C";
                string   precType = element.PrecipitationType;
                string   precInt  = element.PrecipitationIntensity;
                string   precProb = "";
                if (element.HasPrecipitation == "true")
                {
                    precProb = element.PrecipitationProbability + "%";
                }

                _preparedForecastsCollection.Add(new PreparedForecast(dateTime, img, temp, precType, precInt, precProb));
            }
        }
Пример #5
0
 public CurrentConditionsSubscriber(WeatherDataProvider weatherDataProvider)
 {
     _wDataProvider = weatherDataProvider;
     _wDataProvider.RaiseWeatherDataChangedEvent += providerRaiseWeatherDataChangedEvent;
 }
Пример #6
0
 public ForecastSubscriber(WeatherDataProvider weatherDataProvider)
 {
     _wDataProvider = weatherDataProvider;
     _wDataProvider.RaiseWeatherDataChangedEvent += providerRaiseWeatherDataChangedEvent;
 }
Пример #7
0
 public CurrentConditionsDisplay(WeatherDataProvider provider)
 {
     this.provider = provider;
 }
Пример #8
0
 /// <summary>
 /// Registra el evento de cambio de informacion
 /// </summary>
 /// <param name="provider"></param>
 public ForecastDisplay(WeatherDataProvider provider)
 {
     _wDprovider = provider;
     _wDprovider.RaiseWeatherDataChangedEvent += provider_RaiseWeatherDataChangedEvent;
 }
Пример #9
0
 public ForecastDisplay(WeatherDataProvider provider)
 {
     this.provider = provider;
 }
Пример #10
0
 public WeatherViewAViewModel(WeatherDataProvider weatherDataProvider)
 {
     _weatherDataProvider = weatherDataProvider;
 }
 /// <summary>
 /// Registra el evento de cambio de informacion
 /// </summary>
 /// <param name="provider"></param>
 public CurrentConditionsDisplay(WeatherDataProvider provider)
 {
     _wDprovider = provider;
     _wDprovider.RaiseWeatherDataChangedEvent += provider_RaiseWeatherDataChangedEvent;
 }