Task IService.InitializeAsync()
        {
            _client.Log += message
                           => _queue.Enqueue(() => HandleClientLog(message));

            _client.MessageReceived += message
                                       => _queue.Enqueue(() => HandleMessageReceivedAsync(message));

            _restClient.Log += message
                               => _queue.Enqueue(() => HandleClientLog(message));

            _commands.CommandExecuted += (command, result, context, provider)
                                         => _queue.Enqueue(() => HandleCommandExecutedAsync(command, result, context, provider));

            return(_logging.LogInfoAsync("Initialized.", "Dispatcher"));
        }
Пример #2
0
        private Task EnqueueHandlers <TArgs>(TArgs args)
            where TArgs : EventArgs
        {
            foreach (var handler in _handlers[typeof(TArgs)])
            {
                _queue.Enqueue(() => ((IHandler <TArgs>)handler).HandleAsync(args));
            }

            return(Task.CompletedTask);
        }