/// <summary> /// This method call by sender, when information from sensors is updated /// </summary> /// <param name="sender">sender value from sensors</param> /// <param name="infoEventArgs sensors</param> public void Update(WeatherData sender, WeatherInfoEventArgs infoEventArgs) { weatherData = sender; temperature.Add(infoEventArgs.Temperature); pressure.Add(infoEventArgs.Pressure); humidity.Add(infoEventArgs.Humidity); }
public async Task Test_validate_temperature_data() { WeatherInfoEventArgs eventArgs = null; _weatherChannel.Subscribe("Test Subscriber", delegate(object sender, WeatherInfoEventArgs e) { eventArgs = e; }); await _weatherChannel.ProcessInputDataAsync(new WeatherData { Location = "kochi", Celsius = 30 }); int fahren = (30 * 9) / 5 + 32; Assert.AreEqual(30, eventArgs.Celsius); Assert.AreEqual(fahren, eventArgs.Fahrenheit); }
private void Update(object sender, WeatherInfoEventArgs weatherInfoEventArgs) { if (sender == null) { throw new ArgumentNullException($"{nameof(sender)} can not be null."); } if (weatherInfoEventArgs == null) { throw new ArgumentNullException($"{nameof(weatherInfoEventArgs)} can not be null."); } UpdateData(sender, weatherInfoEventArgs); Console.WriteLine(ShowReport() + Environment.NewLine); }
static void Main(string[] args) { var sender = new WeatherData(); var currentConditionsReport = new CurrentConditionsReport(); var statisticReport = new StatisticReport(); //Subscribe sender.WeatherDataChandged += currentConditionsReport.Update; sender.WeatherDataChandged += statisticReport.Update; var weatherInfoEventArgs = new WeatherInfoEventArgs(20, 740, 75); sender.NewWeatherDataAvailable(weatherInfoEventArgs); Console.WriteLine("Temperature {0}, Pressure {1}, Humidity {2}", currentConditionsReport.WthrInfo.Temperature, currentConditionsReport.WthrInfo.Pressure, currentConditionsReport.WthrInfo.Humidity); sender.NewWeatherDataAvailable(weatherInfoEventArgs); // WeatherStation emulation Random rnd = new Random(); for (int i = 0; i < 10; i++) { Thread.Sleep(10); weatherInfoEventArgs = new WeatherInfoEventArgs( rnd.Next(-3, 20), rnd.Next(730, 780), rnd.Next(60, 95)); sender.NewWeatherDataAvailable(weatherInfoEventArgs); Console.WriteLine("Temperature {0}, Pressure {1}, Humidity {2}", currentConditionsReport.WthrInfo.Temperature, currentConditionsReport.WthrInfo.Pressure, currentConditionsReport.WthrInfo.Humidity); } Console.WriteLine(); Console.WriteLine("Stat report:"); Console.WriteLine("MinTemperature: {0}", statisticReport.GetTemperatureMin()); Console.WriteLine("MaxTemperature: {0}", statisticReport.GetTemperatureMax()); Console.WriteLine("MinPressure: {0}", statisticReport.GetPressureMin()); Console.WriteLine("MaxPressure: {0}", statisticReport.GetPresureMax()); Console.WriteLine("MinHumidity: {0}", statisticReport.GetHumidityMin()); Console.WriteLine("MinHumidity: {0}", statisticReport.GetHumidityMax()); Console.WriteLine("AverageTemperature: {0}", statisticReport.GetTemperatureAverage()); Console.WriteLine("AveragePressure: {0}", statisticReport.GetPressureAverage()); Console.WriteLine("AverageHumidity: {0}", statisticReport.GetHumidityAverage()); //Unsubscribe Console.WriteLine("Unsubscribe"); sender.WeatherDataChandged -= currentConditionsReport.Update; weatherInfoEventArgs = new WeatherInfoEventArgs(20, 740, 75); sender.NewWeatherDataAvailable(weatherInfoEventArgs); Console.WriteLine("Temperature: {0}", currentConditionsReport.WthrInfo.Temperature); //Subscribe Console.WriteLine("Subscribe"); Thread.Sleep(1000); sender.WeatherDataChandged += currentConditionsReport.Update; weatherInfoEventArgs = new WeatherInfoEventArgs(20, 740, 75); sender.NewWeatherDataAvailable(weatherInfoEventArgs); Console.WriteLine("Temperature: {0}", currentConditionsReport.WthrInfo.Temperature); Console.ReadLine(); }
protected virtual void OnProcessedDataReceived(object sender, WeatherInfoEventArgs e) { _isSubscribed = true; _triggerCount++; }
/// <summary> /// Updates current report. /// </summary> /// <param name="data">New data for report.</param> /// <param name="obj">Sender object.</param> public void Update(object obj, WeatherInfoEventArgs data) { currentInfo = data; senderName = obj.ToString(); }
/// <summary> /// Adds new report in the list of all reports. /// </summary> /// <param name="data"></param> /// <param name="obj">Sender object.</param> public void Update(object obj, WeatherInfoEventArgs data) { listInfo.Add(data); senderName.Add(obj.ToString()); }
protected override void UpdateData(object sender, WeatherInfoEventArgs weatherInfo) { currentWeatherInfo = weatherInfo; }
protected virtual void OnProcessedDataReceived(object sender, WeatherInfoEventArgs e) { Console.WriteLine($"Hey {Name}, Temperature at {e.Location} is {e.Celsius}°C | {e.Fahrenheit}°F. Updated on {e.UpdatedOn}"); }
private void Update(object sender, WeatherInfoEventArgs info) => _weatherInfoList.Add(info.Clone());
private void Update(object sender, WeatherInfoEventArgs info) => _currentWeatherInfo = info.Clone();
protected override void UpdateDataInReport(object sender, WeatherInfoEventArgs weatherInfoEventArgs) { weatherHistory.Add(weatherInfoEventArgs.Clone()); }
protected override void UpdateDataInReport(object sender, WeatherInfoEventArgs weatherInfoEventArgs) { WeatherInfo = weatherInfoEventArgs.Clone(); }
/// <summary> /// This method call by sender, when information from sensors is updated /// </summary> /// <param name="sender">sender value from sensors</param> /// <param name="infoEventArgs> public void Update(WeatherData sender, WeatherInfoEventArgs infoEventArgs) { wthrInfo = infoEventArgs; }
protected override void UpdateData(object sender, WeatherInfoEventArgs weatherInfo) { statisticWeatherInfo.Add(weatherInfo); }
/// <summary> /// Handles an event. /// </summary> /// <param name="sender">The object that is to raised notifications.</param> /// <param name="infoEventArgs">The current notification information.</param> public void Update(object sender, WeatherInfoEventArgs infoEventArgs) => _infoEventArgs = infoEventArgs;
protected abstract void UpdateData(object sender, WeatherInfoEventArgs weatherInfoEventArgs);