示例#1
0
 public Display(Observable <WeatherInfo> weatherStationInside, Observable <WeatherInfo> weatherStationOutside, int priority)
 {
     _weatherStationInside  = weatherStationInside;
     _weatherStationOutside = weatherStationOutside;
     _weatherStationInside.RegisterObserver(this, priority);
     _weatherStationOutside.RegisterObserver(this, priority);
 }
示例#2
0
 public override void Update(WeatherInfo data, Observer.IObservable <WeatherInfo> observable)
 {
     _curTemp            = data.temperature;
     _curHum             = data.humidity;
     _curPres            = data.pressure;
     _lastWeatherStation = observable;
     DisplayCurrentData();
 }
示例#3
0
 public StatsDisplay(Observable <WeatherInfo> weatherStationInside, Observable <WeatherInfo> weatherStationOutside, int priority)
 {
     _weatherStationInside  = weatherStationInside;
     _weatherStationOutside = weatherStationOutside;
     _weatherStationInside.RegisterObserver(this, priority);
     _weatherStationOutside.RegisterObserver(this, priority);
     _statsDisplayInfoDictionary.Add(_weatherStationInside, new StatsDisplayInfo());
     _statsDisplayInfoDictionary.Add(_weatherStationOutside, new StatsDisplayInfo());
 }
示例#4
0
 public override void Update(WeatherInfo data, Observer.IObservable <WeatherInfo> observable)
 {
     foreach (var field in _sWeatherInfoFields)
     {
         _statisticInfoDictionary [field.Name].AddNewValue(( double )field.GetValue(data));
     }
     ++_countAcc;
     _lastWeatherStation = (Observable <WeatherInfo>)observable;
     DisplayCurrentData();
 }
示例#5
0
 public void Update(SWeatherInfo data, Observer.IObservable <SWeatherInfo> observable)
 {
     if (_weatherDataIn == observable)
     {
         Console.WriteLine("Inside:");
         _weatherStatisticsIn.PrintStatistics(data);
     }
     if (_weatherDataOut == observable)
     {
         Console.WriteLine("Outside:");
         _weatherStatisticsOut.PrintStatistics(data);
     }
 }
示例#6
0
 public void Update(WeatherInfo data, Observer.IObservable <WeatherInfo> observable)
 {
     Console.WriteLine($"Current Temp {data.temperature}");
     Console.WriteLine($"Current Hum {data.humidity}");
     Console.WriteLine($"Current Pressure {data.pressure}");
     if (observable == _weatherStationOutside)
     {
         Console.WriteLine($"Current windSpeed {(( WeatherInfoOutside ) data ).windInfo.windSpeed}");
         Console.WriteLine($"Current windDirection {( ( WeatherInfoOutside ) data ).windInfo.windDirection}");
     }
     Console.WriteLine($"Location {observable.Location.ToString()}");
     Console.WriteLine("----------------");
 }
示例#7
0
 public void Update(SWeatherInfo data, Observer.IObservable <SWeatherInfo> observable)
 {
     if (_weatherDataIn == observable)
     {
         Console.WriteLine("Inside:");
     }
     if (_weatherDataOut == observable)
     {
         Console.WriteLine("Outside:");
     }
     Console.WriteLine($"Current Temp {data.temperature}");
     Console.WriteLine($"Current Hum {data.humidity}");
     Console.WriteLine($"Current Pressure {data.pressure}");
     Console.WriteLine("----------------");
 }
示例#8
0
 public void Update(WeatherInfo data, Observer.IObservable <WeatherInfo> observable)
 {
     if (observable == _weatherStationOutside)
     {
         _statsDisplayInfoDictionary [_weatherStationOutside].CountAcc++;
         DisplayStatisticData(_statsDisplayInfoDictionary[_weatherStationOutside].TemperatureInfo.CalculateStatisticInfo(_statsDisplayInfoDictionary [_weatherStationOutside].CountAcc, data.temperature));
         DisplayStatisticData(_statsDisplayInfoDictionary [_weatherStationOutside].HumidityInfo.CalculateStatisticInfo(_statsDisplayInfoDictionary [_weatherStationOutside].CountAcc, data.humidity));
         DisplayStatisticData(_statsDisplayInfoDictionary [_weatherStationOutside].PressureInfo.CalculateStatisticInfo(_statsDisplayInfoDictionary [_weatherStationOutside].CountAcc, data.pressure));
         DisplayStatisticData(_statsDisplayInfoDictionary [_weatherStationOutside].WindInfo.CalculateWindSpeedStatisticInfo(_statsDisplayInfoDictionary [_weatherStationOutside].CountAcc, ( WeatherInfoOutside )data));
         DisplayStatisticData(_statsDisplayInfoDictionary [_weatherStationOutside].WindInfo.CalculateWindDirectionStatisticInfo(_statsDisplayInfoDictionary [_weatherStationOutside].CountAcc, ( WeatherInfoOutside )data));
     }
     else
     {
         _statsDisplayInfoDictionary [_weatherStationInside].CountAcc++;
         DisplayStatisticData(_statsDisplayInfoDictionary [_weatherStationInside].TemperatureInfo.CalculateStatisticInfo(_statsDisplayInfoDictionary [_weatherStationInside].CountAcc, data.temperature));
         DisplayStatisticData(_statsDisplayInfoDictionary [_weatherStationInside].HumidityInfo.CalculateStatisticInfo(_statsDisplayInfoDictionary [_weatherStationInside].CountAcc, data.humidity));
         DisplayStatisticData(_statsDisplayInfoDictionary [_weatherStationInside].PressureInfo.CalculateStatisticInfo(_statsDisplayInfoDictionary [_weatherStationInside].CountAcc, data.pressure));
     }
     Console.WriteLine($"Location {observable.Location}");
     Console.WriteLine("----------------");
 }