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); }
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); }