public void PublishStatusChangedEvent(ComponentStatusChangedEventArgs eventArgs) { if (eventArgs is null) { throw new ArgumentNullException(nameof(eventArgs)); } var message = new Dictionary <object, object>(6) { ["type"] = "component_registry.event.status_changed", ["timestamp"] = eventArgs.Timestamp.ToString("O"), ["component_uid"] = eventArgs.Component.Uid, ["status_uid"] = eventArgs.StatusUid, ["old_value"] = eventArgs.OldValue, ["new_value"] = eventArgs.NewValue }; _messageBusService.Publish(message); }
void OnComponentStatusChanged(object sender, ComponentStatusChangedEventArgs e) { var updateOnValueChanged = true; // TODO: Get filter settings and skip if disabled. if (!updateOnValueChanged) { _logger.LogTrace($"Skipping value changed update trigger for '{e.Component.Uid}.{e.StatusUid}'."); return; } TryEnqueueWorkItem(new ComponentStatusHistoryWorkItem { Timestamp = e.Timestamp, Component = e.Component, StatusUid = e.StatusUid, Value = e.NewValue }); }