コード例 #1
0
    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);
    }
コード例 #2
0
        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
            });
        }