void IQueueMessageHandler.Handle(QueueMessage queueMessage, IMessageContext context)
 {
     var exceptionMessage = _jsonSerializer.Deserialize<PublishableExceptionMessage>(Encoding.UTF8.GetString(queueMessage.Body));
     var exceptionType = _typeNameProvider.GetType(queueMessage.Tag);
     var exception = FormatterServices.GetUninitializedObject(exceptionType) as IPublishableException;
     exception.Id = exceptionMessage.UniqueId;
     exception.Timestamp = exceptionMessage.Timestamp;
     exception.RestoreFrom(exceptionMessage.SerializableInfo);
     var sequenceMessage = exception as ISequenceMessage;
     if (sequenceMessage != null)
     {
         sequenceMessage.AggregateRootTypeName = exceptionMessage.AggregateRootTypeName;
         sequenceMessage.AggregateRootStringId = exceptionMessage.AggregateRootId;
     }
     var processContext = new EQueueProcessContext(queueMessage, context);
     var processingMessage = new ProcessingPublishableExceptionMessage(exception, processContext);
     _publishableExceptionProcessor.Process(processingMessage);
 }
 void IQueueMessageHandler.Handle(QueueMessage queueMessage, IMessageContext context)
 {
     var exceptionMessage = _jsonSerializer.Deserialize<PublishableExceptionMessage>(Encoding.UTF8.GetString(queueMessage.Body));
     var exceptionType = _publishableExceptionTypeCodeProvider.GetType(exceptionMessage.ExceptionTypeCode);
     var exception = FormatterServices.GetUninitializedObject(exceptionType) as IPublishableException;
     exception.Id = exceptionMessage.UniqueId;
     exception.Timestamp = exceptionMessage.Timestamp;
     exception.RestoreFrom(exceptionMessage.SerializableInfo);
     var sequenceMessage = exception as ISequenceMessage;
     if (sequenceMessage != null)
     {
         sequenceMessage.AggregateRootTypeCode = exceptionMessage.AggregateRootTypeCode;
         sequenceMessage.AggregateRootId = exceptionMessage.AggregateRootId;
     }
     var processContext = new EQueueProcessContext(queueMessage, context);
     var processingMessage = new ProcessingPublishableExceptionMessage(exception, processContext);
     _publishableExceptionProcessor.Process(processingMessage);
 }
        void IQueueMessageHandler.Handle(QueueMessage queueMessage, IMessageContext context)
        {
            var exceptionMessage = _jsonSerializer.Deserialize <PublishableExceptionMessage>(Encoding.UTF8.GetString(queueMessage.Body));
            var exceptionType    = _typeNameProvider.GetType(queueMessage.Tag);
            var exception        = FormatterServices.GetUninitializedObject(exceptionType) as IPublishableException;

            exception.Id        = exceptionMessage.UniqueId;
            exception.Timestamp = exceptionMessage.Timestamp;
            exception.RestoreFrom(exceptionMessage.SerializableInfo);
            var processContext    = new EQueueProcessContext(queueMessage, context);
            var processingMessage = new ProcessingPublishableExceptionMessage(exception, processContext);

            _logger.DebugFormat("ENode exception message received, messageId: {0}, aggregateRootId: {1}, aggregateRootType: {2}", exceptionMessage.UniqueId, exceptionMessage.AggregateRootId, exceptionMessage.AggregateRootTypeName);

            Task.Factory.StartNew(obj =>
            {
                _messageDispatcher.DispatchMessageAsync(((ProcessingPublishableExceptionMessage)obj).Message).ContinueWith(x =>
                {
                    processingMessage.Complete();
                });
            }, processingMessage);
        }
Exemple #4
0
        public void Handle(KafkaMessage message, IKafkaMessageContext context)
        {
            var eNodeMessage     = _jsonSerializer.Deserialize <ENodeMessage>(message.Value);
            var exceptionMessage = _jsonSerializer.Deserialize <PublishableExceptionMessage>(eNodeMessage.Body);
            var exceptionType    = _typeNameProvider.GetType(eNodeMessage.Tag);
            var exception        = FormatterServices.GetUninitializedObject(exceptionType) as IPublishableException;

            exception.Id        = exceptionMessage.UniqueId;
            exception.Timestamp = exceptionMessage.Timestamp;
            exception.RestoreFrom(exceptionMessage.SerializableInfo);
            var sequenceMessage = exception as ISequenceMessage;

            if (sequenceMessage != null)
            {
                sequenceMessage.AggregateRootTypeName = exceptionMessage.AggregateRootTypeName;
                sequenceMessage.AggregateRootStringId = exceptionMessage.AggregateRootId;
            }
            var processContext    = new KafkaMessageProcessContext(message, context);
            var processingMessage = new ProcessingPublishableExceptionMessage(exception, processContext);

            _logger.InfoFormat("ENode exception message received, messageId: {0}, aggregateRootId: {1}, aggregateRootType: {2}", exceptionMessage.UniqueId, exceptionMessage.AggregateRootId, exceptionMessage.AggregateRootTypeName);
            _publishableExceptionProcessor.Process(processingMessage);
        }