Browse Source

Merge pull request #12672 from abpframework/auto-merge/rel-5-3/1084

Merge branch dev with rel-5.3
pull/12679/head
maliming 4 years ago
committed by GitHub
parent
commit
0319bf5b2e
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
  1. 10
      framework/src/Volo.Abp.EventBus.Rebus/Volo/Abp/EventBus/Rebus/AbpRebusEventHandlerStep.cs
  2. 6
      framework/src/Volo.Abp.EventBus.Rebus/Volo/Abp/EventBus/Rebus/IRebusDistributedEventHandlerAdapter.cs
  3. 2
      framework/src/Volo.Abp.EventBus.Rebus/Volo/Abp/EventBus/Rebus/RebusDistributedEventHandlerAdapter.cs

10
framework/src/Volo.Abp.EventBus.Rebus/Volo/Abp/EventBus/Rebus/AbpRebusEventHandlerStep.cs

@ -1,4 +1,5 @@
using System; using System;
using System.Collections.Generic;
using System.Linq; using System.Linq;
using System.Threading.Tasks; using System.Threading.Tasks;
using Rebus.Messages; using Rebus.Messages;
@ -14,9 +15,12 @@ public class AbpRebusEventHandlerStep : IIncomingStep
var message = context.Load<Message>(); var message = context.Load<Message>();
var handlerInvokers = context.Load<HandlerInvokers>().ToList(); var handlerInvokers = context.Load<HandlerInvokers>().ToList();
handlerInvokers.RemoveAll(x => x.Handler.GetType() == typeof(RebusDistributedEventHandlerAdapter<object>)); if (handlerInvokers.All(x => x.Handler is IRebusDistributedEventHandlerAdapter))
context.Save(new HandlerInvokers(message, handlerInvokers)); {
handlerInvokers = new List<HandlerInvoker> {handlerInvokers.Last()};
context.Save(new HandlerInvokers(message, handlerInvokers));
}
return next(); return next();
} }
} }

6
framework/src/Volo.Abp.EventBus.Rebus/Volo/Abp/EventBus/Rebus/IRebusDistributedEventHandlerAdapter.cs

@ -0,0 +1,6 @@
namespace Volo.Abp.EventBus.Rebus;
public interface IRebusDistributedEventHandlerAdapter
{
}

2
framework/src/Volo.Abp.EventBus.Rebus/Volo/Abp/EventBus/Rebus/RebusDistributedEventHandlerAdapter.cs

@ -3,7 +3,7 @@ using Rebus.Handlers;
namespace Volo.Abp.EventBus.Rebus; namespace Volo.Abp.EventBus.Rebus;
public class RebusDistributedEventHandlerAdapter<TEventData> : IHandleMessages<TEventData> public class RebusDistributedEventHandlerAdapter<TEventData> : IHandleMessages<TEventData> , IRebusDistributedEventHandlerAdapter
{ {
protected RebusDistributedEventBus RebusDistributedEventBus { get; } protected RebusDistributedEventBus RebusDistributedEventBus { get; }

Loading…
Cancel
Save