Paralect.ServiceBus.ServiceBus.EndpointObserverMessageReceived C# (CSharp) Method

EndpointObserverMessageReceived() private method

Handle messages that were received from input endpoint Method can be called from different threads.
private EndpointObserverMessageReceived ( TransportMessage transportMessage, ITransportEndpointObserver transportEndpointObserver ) : void
transportMessage TransportMessage
transportEndpointObserver ITransportEndpointObserver
return void
        private void EndpointObserverMessageReceived(TransportMessage transportMessage, ITransportEndpointObserver transportEndpointObserver)
        {
            try
            {
                // Translate to Transport message
                var serviceBusMessage = transportEndpointObserver.Transport.TranslateToServiceBusMessage(transportMessage);

                // Ignore transport messages without messages
                if (serviceBusMessage.Messages == null && serviceBusMessage.Messages.Length < 1)
                    return;

                // Dispatch each message (synchronously)
                foreach (var message in serviceBusMessage.Messages)
                {
                    _dispatcher.Dispatch(message);
                }
            }
            catch (DispatchingException dispatchingException)
            {
                _lastException = dispatchingException;
                _log.ErrorException("Dispatching exception. See logs for more details.", dispatchingException);
                _errorTransportEndpoint.Send(transportMessage);
            }
            catch (HandlerException handlerException)
            {
                _lastException = handlerException;
                _log.ErrorException("Message handling failed.", handlerException);
                _errorTransportEndpoint.Send(transportMessage);
            }
            catch (TransportMessageDeserializationException deserializationException)
            {
                _lastException = deserializationException;
                _log.ErrorException("Unable to deserialize message #" + transportMessage.MessageId, deserializationException);
                _errorTransportEndpoint.Send(transportMessage);
            }
        }