Exemplo n.º 1
0
        public override Task SaveFailHandledEventAsync(IMessageContext eventContext,
                                                       string subscriptionName,
                                                       Exception e,
                                                       params IMessageContext[] messageContexts)
        {
            HandledEvents.Add(new FailHandledEvent(eventContext.MessageId, subscriptionName, eventContext.MessageOffset, DateTime.Now, e));

            messageContexts.ForEach(messageContext =>
            {
                messageContext.CorrelationId = eventContext.MessageId;
                Events.Add(BuildEvent(messageContext));
                UnPublishedEvents.Add(new UnPublishedEvent(messageContext));
            });
            return(SaveChangesAsync());
        }
Exemplo n.º 2
0
        public Task SaveCommandAsync(IMessageContext commandContext,
                                     object result = null,
                                     params IMessageContext[] messageContexts)
        {
            if (commandContext != null)
            {
                var command = BuildCommand(commandContext, result);
                Commands.Add(command);
            }

            messageContexts?.ForEach(eventContext =>
            {
                eventContext.CorrelationId = commandContext?.MessageId;
                Events.Add(BuildEvent(eventContext));
                UnPublishedEvents.Add(new UnPublishedEvent(eventContext));
            });
            return(SaveChangesAsync());
        }
Exemplo n.º 3
0
        public Task SaveFailedCommandAsync(IMessageContext commandContext,
                                           Exception ex = null,
                                           params IMessageContext[] eventContexts)
        {
            if (commandContext != null)
            {
                var command = BuildCommand(commandContext, ex);
                command.Status = MessageStatus.Failed;
                Commands.Add(command);
            }

            eventContexts?.ForEach(eventContext =>
            {
                eventContext.CorrelationId = commandContext?.MessageId;
                Events.Add(BuildEvent(eventContext));
                UnPublishedEvents.Add(new UnPublishedEvent(eventContext));
            });
            return(SaveChangesAsync());
        }
Exemplo n.º 4
0
 public override Task HandleEventAsync(IMessageContext eventContext,
                                       string subscriptionName,
                                       IEnumerable <IMessageContext> commandContexts,
                                       IEnumerable <IMessageContext> messageContexts)
 {
     HandledEvents.Add(new HandledEvent(eventContext.MessageId, subscriptionName, eventContext.MessageOffset, DateTime.Now));
     commandContexts.ForEach(commandContext =>
     {
         commandContext.CorrelationId = eventContext.MessageId;
         // don't save command here like event that would be published to other bounded context
         UnSentCommands.Add(new UnSentCommand(commandContext));
     });
     messageContexts.ForEach(messageContext =>
     {
         messageContext.CorrelationId = eventContext.MessageId;
         Events.Add(BuildEvent(messageContext));
         UnPublishedEvents.Add(new UnPublishedEvent(messageContext));
     });
     return(SaveChangesAsync());
 }