Example #1
0
 public DomainEventStreamProcessContext(DomainEventConsumer eventConsumer, DomainEventStreamMessage domainEventStreamMessage, KafkaMessage kafkaMessage, IKafkaMessageContext messageContext)
 {
     _eventConsumer            = eventConsumer;
     _domainEventStreamMessage = domainEventStreamMessage;
     _kafkaMessage             = kafkaMessage;
     _messageContext           = messageContext;
 }
Example #2
0
 public DomainEventStreamProcessContext(DomainEventConsumer eventConsumer, DomainEventStreamMessage domainEventStreamMessage, QueueMessage queueMessage, IMessageContext messageContext)
 {
     _queueMessage             = queueMessage;
     _messageContext           = messageContext;
     _eventConsumer            = eventConsumer;
     _domainEventStreamMessage = domainEventStreamMessage;
 }
 public void PublishDomainEventAsync(ProcessingCommand processingCommand, DomainEventStream eventStream)
 {
     if (eventStream.Items == null || eventStream.Items.Count == 0)
     {
         eventStream.Items = processingCommand.Items;
     }
     var eventStreamMessage = new DomainEventStreamMessage(processingCommand.Message.Id, eventStream.AggregateRootId, eventStream.Version, eventStream.AggregateRootTypeName, eventStream.Events, eventStream.Items);
     PublishDomainEventAsync(processingCommand, eventStreamMessage, 0);
 }
        public void PublishDomainEventAsync(ProcessingCommand processingCommand, DomainEventStream eventStream)
        {
            if (eventStream.Items == null || eventStream.Items.Count == 0)
            {
                eventStream.Items = processingCommand.Items;
            }
            var eventStreamMessage = new DomainEventStreamMessage(processingCommand.Message.Id, eventStream.AggregateRootId, eventStream.Version, eventStream.AggregateRootTypeName, eventStream.Events, eventStream.Items);

            PublishDomainEventAsync(processingCommand, eventStreamMessage, 0);
        }
Example #5
0
 private DomainEventStreamMessage ConvertToDomainEventStream(EventStreamMessage message)
 {
     var domainEventStreamMessage = new DomainEventStreamMessage(
         message.CommandId,
         message.AggregateRootId,
         message.Version,
         message.AggregateRootTypeName,
         _eventSerializer.Deserialize<IDomainEvent>(message.Events),
         message.Items);
     domainEventStreamMessage.Timestamp = message.Timestamp;
     return domainEventStreamMessage;
 }
Example #6
0
        private DomainEventStreamMessage ConvertToDomainEventStream(EventStreamMessage message)
        {
            var domainEventStreamMessage = new DomainEventStreamMessage(
                message.CommandId,
                message.AggregateRootId,
                message.Version,
                message.AggregateRootTypeName,
                _eventSerializer.Deserialize <IDomainEvent>(message.Events),
                message.Items);

            domainEventStreamMessage.Timestamp = message.Timestamp;
            return(domainEventStreamMessage);
        }
Example #7
0
 private void PublishDomainEventAsync(ProcessingCommand processingCommand, DomainEventStreamMessage eventStream, int retryTimes)
 {
     _ioHelper.TryAsyncActionRecursively <AsyncTaskResult>("PublishDomainEventAsync",
                                                           () => _domainEventPublisher.PublishAsync(eventStream),
                                                           currentRetryTimes => PublishDomainEventAsync(processingCommand, eventStream, currentRetryTimes),
                                                           result =>
     {
         _logger.DebugFormat("Publish domain events success, {0}", eventStream);
         processingCommand.Complete(new CommandResult(CommandStatus.Success, processingCommand.Message.Id, eventStream.AggregateRootId, null, null));
     },
                                                           () => string.Format("[eventStream:{0}]", eventStream),
                                                           () => processingCommand.Complete(new CommandResult(CommandStatus.Failed, processingCommand.Message.Id, eventStream.AggregateRootId, null, "Publish domain event async failed.")),
                                                           retryTimes);
 }
 private void PublishDomainEventAsync(ProcessingCommand processingCommand, DomainEventStreamMessage eventStream, int retryTimes)
 {
     _ioHelper.TryAsyncActionRecursively("PublishEventAsync",
                                         () => _domainEventPublisher.PublishAsync(eventStream),
                                         currentRetryTimes => PublishDomainEventAsync(processingCommand, eventStream, currentRetryTimes),
                                         result =>
     {
         _logger.DebugFormat("Publish event success, {0}", eventStream);
         var commandHandleResult = processingCommand.CommandExecuteContext.GetResult();
         var commandResult       = new CommandResult(CommandStatus.Success, processingCommand.Message.Id, eventStream.AggregateRootId, commandHandleResult, typeof(string).FullName);
         CompleteCommand(processingCommand, commandResult);
     },
                                         () => string.Format("[eventStream:{0}]", eventStream),
                                         null,
                                         retryTimes, true);
 }
Example #9
0
 private void PublishDomainEventAsync(ProcessingCommand processingCommand, DomainEventStreamMessage eventStream, int retryTimes)
 {
     _ioHelper.TryAsyncActionRecursively <AsyncTaskResult>("PublishDomainEventAsync",
                                                           () => _domainEventPublisher.PublishAsync(eventStream),
                                                           currentRetryTimes => PublishDomainEventAsync(processingCommand, eventStream, currentRetryTimes),
                                                           result =>
     {
         if (_logger.IsDebugEnabled)
         {
             _logger.DebugFormat("Publish domain events success, {0}", eventStream);
         }
         var commandHandleResult = processingCommand.CommandExecuteContext.GetResult();
         processingCommand.Complete(new CommandResult(CommandStatus.Success, processingCommand.Message.Id, eventStream.AggregateRootId, commandHandleResult, typeof(string).FullName));
     },
                                                           () => string.Format("[eventStream:{0}]", eventStream),
                                                           errorMessage => processingCommand.Complete(new CommandResult(CommandStatus.Failed, processingCommand.Message.Id, eventStream.AggregateRootId, errorMessage ?? "Publish domain event async failed.", typeof(string).FullName)),
                                                           retryTimes);
 }
Example #10
0
 private void PublishDomainEventAsync(ProcessingCommand processingCommand, DomainEventStreamMessage eventStream, int retryTimes)
 {
     _ioHelper.TryAsyncActionRecursively("PublishEventAsync",
                                         () => _domainEventPublisher.PublishAsync(eventStream),
                                         currentRetryTimes => PublishDomainEventAsync(processingCommand, eventStream, currentRetryTimes),
                                         result =>
     {
         if (_logger.IsDebugEnabled)
         {
             _logger.DebugFormat("Publish event success, {0}", eventStream);
         }
         var commandHandleResult = processingCommand.CommandExecuteContext.GetResult();
         CompleteCommand(processingCommand, new CommandResult(CommandStatus.Success, processingCommand.Message.Id, eventStream.AggregateRootId, commandHandleResult, typeof(string).FullName));
     },
                                         () => string.Format("[eventStream:{0}]", eventStream),
                                         errorMessage =>
     {
         _logger.Fatal(string.Format("Publish event has unknown exception, the code should not be run to here, errorMessage: {0}", errorMessage));
     },
                                         retryTimes, true);
 }
 public DomainEventStreamProcessContext(DomainEventConsumer eventConsumer, DomainEventStreamMessage domainEventStreamMessage, IMessageTransportationContext messageContext)
 {
     _messageContext           = messageContext;
     _eventConsumer            = eventConsumer;
     _domainEventStreamMessage = domainEventStreamMessage;
 }
Example #12
0
 public DomainEventStreamProcessContext(DomainEventStreamMessage domainEventStreamMessage)
 {
     _domainEventStreamMessage = domainEventStreamMessage;
 }
Example #13
0
 public DomainEventStreamProcessContext(DomainEventConsumer eventConsumer, DomainEventStreamMessage domainEventStreamMessage, QueueMessage queueMessage, IMessageContext messageContext)
     : base(queueMessage, messageContext)
 {
     _eventConsumer            = eventConsumer;
     _domainEventStreamMessage = domainEventStreamMessage;
 }
 public DomainEventStreamProcessContext(DomainEventStreamMessage domainEventStreamMessage, ManualResetEvent waitHandle, IList <int> versionList)
 {
     _domainEventStreamMessage = domainEventStreamMessage;
     _waitHandle  = waitHandle;
     _versionList = versionList;
 }
Example #15
0
 public DomainEventStreamProcessContext(DomainEventConsumer eventConsumer, DomainEventStreamMessage domainEventStreamMessage, QueueMessage queueMessage, IMessageContext messageContext)
     : base(queueMessage, messageContext)
 {
     _eventConsumer = eventConsumer;
     _domainEventStreamMessage = domainEventStreamMessage;
 }
Example #16
0
 private void PublishDomainEventAsync(ProcessingCommand processingCommand, DomainEventStreamMessage eventStream, int retryTimes)
 {
     _ioHelper.TryAsyncActionRecursively<AsyncTaskResult>("PublishDomainEventAsync",
     () => _domainEventPublisher.PublishAsync(eventStream),
     currentRetryTimes => PublishDomainEventAsync(processingCommand, eventStream, currentRetryTimes),
     result =>
     {
         if (_logger.IsDebugEnabled)
         {
             _logger.DebugFormat("Publish domain events success, {0}", eventStream);
         }
         var commandHandleResult = processingCommand.CommandExecuteContext.GetResult();
         processingCommand.Complete(new CommandResult(CommandStatus.Success, processingCommand.Message.Id, eventStream.AggregateRootId, commandHandleResult, typeof(string).FullName));
     },
     () => string.Format("[eventStream:{0}]", eventStream),
     errorMessage => processingCommand.Complete(new CommandResult(CommandStatus.Failed, processingCommand.Message.Id, eventStream.AggregateRootId, errorMessage ?? "Publish domain event async failed.", typeof(string).FullName)),
     retryTimes);
 }
Example #17
0
 private void PublishDomainEventAsync(ProcessingCommand processingCommand, DomainEventStreamMessage eventStream, int retryTimes)
 {
     _ioHelper.TryAsyncActionRecursively("PublishEventAsync",
     () => _domainEventPublisher.PublishAsync(eventStream),
     currentRetryTimes => PublishDomainEventAsync(processingCommand, eventStream, currentRetryTimes),
     result =>
     {
         if (_logger.IsDebugEnabled)
         {
             _logger.DebugFormat("Publish event success, {0}", eventStream);
         }
         var commandHandleResult = processingCommand.CommandExecuteContext.GetResult();
         CompleteCommand(processingCommand, new CommandResult(CommandStatus.Success, processingCommand.Message.Id, eventStream.AggregateRootId, commandHandleResult, typeof(string).FullName));
     },
     () => string.Format("[eventStream:{0}]", eventStream),
     errorMessage =>
     {
         _logger.Fatal(string.Format("Publish event has unknown exception, the code should not be run to here, errorMessage: {0}", errorMessage));
     },
     retryTimes, true);
 }
Example #18
0
 public DomainEventStreamProcessContext(DomainEventConsumer eventConsumer, DomainEventStreamMessage domainEventStreamMessage, KafkaMessage message, IKafkaMessageContext messageContext)
     : base(message, messageContext)
 {
     _eventConsumer            = eventConsumer;
     _domainEventStreamMessage = domainEventStreamMessage;
 }
Example #19
0
 public DomainEventStreamProcessContext(DomainEventStreamMessage domainEventStreamMessage)
 {
     _domainEventStreamMessage = domainEventStreamMessage;
 }
Example #20
0
 private void PublishDomainEventAsync(ProcessingCommand processingCommand, DomainEventStreamMessage eventStream, int retryTimes)
 {
     _ioHelper.TryAsyncActionRecursively<AsyncTaskResult>("PublishDomainEventAsync",
     () => _domainEventPublisher.PublishAsync(eventStream),
     currentRetryTimes => PublishDomainEventAsync(processingCommand, eventStream, currentRetryTimes),
     result =>
     {
         _logger.DebugFormat("Publish domain events success, {0}", eventStream);
         processingCommand.Complete(new CommandResult(CommandStatus.Success, processingCommand.Message.Id, eventStream.AggregateRootId, null, null));
     },
     () => string.Format("[eventStream:{0}]", eventStream),
     errorMessage => processingCommand.Complete(new CommandResult(CommandStatus.Failed, processingCommand.Message.Id, eventStream.AggregateRootId, null, errorMessage ?? "Publish domain event async failed.")),
     retryTimes);
 }
Example #21
0
 public ProcessingEvent(DomainEventStreamMessage message, IEventProcessContext processContext)
 {
     Message        = message;
     ProcessContext = processContext;
 }