Beispiel #1
0
        protected override async Task ExecuteAsync(CancellationToken stoppingToken)
        {
            // On Plugin Connect Event
            _messageProcessor.OnConnectEventHandler += () => {
                _logger.LogInformation($"{DateTime.Now} Plugin Connected to TouchPortal");
                _messageProcessor.CreateState(new StateCreate {
                    Id = "CreatedStateId", Desc = "State Description", DefaultValue = "default value"
                });
            };

            // On Action Event
            _messageProcessor.OnActionEvent += (actionId, dataList) => {
                _logger.LogInformation($"{DateTime.Now} Action Event Fired.");
                foreach (var o in dataList)
                {
                    _logger.LogInformation($"Id: {o.Id} Value: {o.Value}");
                }
            };

            // On List Change Event
            _messageProcessor.OnListChangeEventHandler += (actionId, listId, instanceId, value) => {
                _logger.LogInformation($"{DateTime.Now} Choice Event Fired.");
            };

            // On Plugin Disconnect
            _messageProcessor.OnCloseEventHandler += () => {
                _logger.LogInformation($"{DateTime.Now} Plugin Quit Command");
                _messageProcessor.RemoveState(new StateRemove {
                    Id = "CreatedStateId"
                });
            };

            // Send State Update
            _messageProcessor.UpdateState(new StateUpdate {
                Id = "SomeStateId", Value = "New Value"
            });

            // Run Listen and pairing
            _ = Task.WhenAll(new Task[] {
                _messageProcessor.Listen(),
                _messageProcessor.TryPairAsync()
            });

            // Do whatever you want in here
            while (!stoppingToken.IsCancellationRequested)
            {
                _logger.LogInformation("Worker running at: {time}", DateTimeOffset.Now);
                await Task.Delay(1000, stoppingToken).ConfigureAwait(false);
            }
        }