Exemple #1
0
        public async Task Initialize(ActionDefinition actionDefinition, StreamDeckInboundActionEvent triggeringEvent)
        {
            if (this.ContextId != null || this.ActionDefinition != null)
            {
                throw new InvalidOperationException($"{nameof(Initialize)} may only be called once");
            }

            this.ContextId        = triggeringEvent.Context;
            this.ActionDefinition = actionDefinition;

            this.listener = connection.Listen <StreamDeck.Events.StreamDeckInboundActionEvent>(e =>
            {
                if (e.Context == this.ContextId && e.Action.Equals(this.ActionDefinition.UUID, StringComparison.OrdinalIgnoreCase))
                {
                    return(ProcessEventsAsync(e));
                }

                return(Task.CompletedTask);
            });

            var handler = serviceProvider.GetRequiredService(this.ActionDefinition.Handler);

            Bind(handler);

            await ProcessEventsAsync(triggeringEvent);
        }
Exemple #2
0
 private Task ProcessEventsAsync(StreamDeckInboundActionEvent evnt)
 => eventManager.TriggerEvent(evnt);