private async Task CheckTraffic(CarLocated message) { _logger.Information($"received a CheckTraffic message{message}"); JObject trafficCheckedjson = await _googleController.GetCurrentTravelTime(message.Latitude, message.Longitude); _logger.Information("Sending TrafficChecked message"); var currentTrafficTime = (int)trafficCheckedjson["routes"][0]["legs"][0]["duration_in_traffic"]["value"]; var defaultTrafficTime = (int)trafficCheckedjson["routes"][0]["legs"][0]["duration"]["value"]; var trafficChecked = new TrafficChecked(currentTrafficTime, defaultTrafficTime); var @event = new Message <TrafficChecked>(trafficChecked); _rabbitMQClient.SendMessage(_exchangeName, @event); _logger.Information("Message send"); }
public void Start() { _logger.Information("Starting app"); var lastChecked = _currentTime.AddMinutes(-6); while (true) { _checkDelay = GetTimeSpanFromString(_config["CheckDelay"]); _logger.Information($"Check every {_checkDelay} minutes"); if (_currentTime.DayOfWeek != DayOfWeek.Sunday && _currentTime.DayOfWeek != DayOfWeek.Saturday && ActiveMorningHours(_currentTime.TimeOfDay) && lastChecked.AddMinutes(5) < _currentTime) { _logger.Information($"Now checking"); var message = new Message <StartHomeAutomation>(new StartHomeAutomation()); _rabbitMQClient.SendMessage(_exchangeName, message); } else { _logger.Information("No need to check, checking again in 5 minutes"); } Thread.Sleep(_checkDelay); _currentTime = DateTime.Now; } }
private void Handle(WeatherChecked message) { _logger.Information($"Received a TrafficChecked message{message}"); Message <HeaterStarted> @event; if (message.Temperature < 14 && HeaterRunLastHour()) { AsyncHelper.RunSync(() => _volvoClient.StartHeatherAsync()); _lastHeatherRun = DateTime.Now; _logger.Information($"Heater Started"); @event = new Message <HeaterStarted>(new HeaterStarted(true, message.Temperature)); } else { _logger.Information($"No need to start heater: temp = {message.Temperature} last heater start {_lastHeatherRun}"); @event = new Message <HeaterStarted>(new HeaterStarted(false, message.Temperature)); } _logger.Information("Sending HeaterStarted message"); _rabbitMQClient.SendMessage(_exchangeName, @event); _logger.Information("Message send"); }