Exemplo n.º 1
0
        public override async Task Execute()
        {
            var queueData = await _queueExt.GetMessageAsync();

            while (queueData != null)
            {
                try
                {
                    // if prehandler tells Skip the event - then we skip the event
                    if (_preHandler != null && !await _preHandler(queueData.Data))
                    {
                        if (_errorHandlers.ContainsKey(queueData.Data.GetType()))
                        {
                            await _errorHandlers[queueData.Data.GetType()](queueData.Data);
                        }
                        continue;
                    }

                    //if was data is null => unregistered(unknown) type
                    if (queueData.Data == null)
                    {
                        continue;
                    }

                    var handler = _handlers[queueData.Data.GetType()];
                    await handler(queueData.Data);
                }
                finally
                {
                    await _queueExt.FinishMessageAsync(queueData);

                    queueData = await _queueExt.GetMessageAsync();
                }
            }
        }
Exemplo n.º 2
0
 public Task FinishMessageAsync(QueueData token)
 => WrapAsync(() => _impl.FinishMessageAsync(token), Name);