示例#1
0
 public void SaveEvent(IMessageContext eventContext, string subscriptionName,
                       IEnumerable <IMessageContext> commandContexts,
                       IEnumerable <IMessageContext> messageContexts)
 {
     lock (EventLock)
     {
         var @event = Events.Find(eventContext.MessageID);
         if (@event == null)
         {
             @event = BuildEvent(eventContext);
             Events.Add(@event);
         }
         HandledEvents.Add(new HandledEvent(@event.ID, subscriptionName, 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));
         });
         SaveChanges();
     }
 }
示例#2
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());
 }