Example #1
0
        private async Task InvokeEventAction()
        {
            try
            {
                while (!_cancellationTokenSource.IsCancellationRequested)
                {
                    var serializedEvent = await _eventChannel.Reader.ReadAsync(_cancellationTokenSource.Token).ConfigureAwait(false);

                    try
                    {
                        var envelope = _serializer.DeserializeEventEnvelope(serializedEvent);
                        _eventInvoker.Invoke(envelope.Body);
                    }
                    catch (Exception e)
                    {
                        e.Data["Event"] = serializedEvent;
                        _logger.LogError(e, "Исключение при обработке события.");
                    }
                }
            }
            catch (OperationCanceledException e)
            {
                _logger.LogTrace(e, "Обработка событий от терминала Quik остановлена.");
            }
            catch (Exception e)
            {
                _logger.LogError(e, "Исключение при обработке событий.");
                _cancellationTokenSource.Cancel();

                throw new QuikSharpException("Исключение при обработке событий.", e);
            }
        }
Example #2
0
 public void Invoke(EventType @event)
 {
     LogEnter(@event, GetSet.Get(@event).GetInvocationList().Length - 1);
     proxy.Invoke(@event);
     LogExit(@event);
 }