public EventSubscriptionBuilder(SubscriptionBuilderInterface builderInterface) { Check.NotNull(builderInterface, nameof(builderInterface)); _builderInterface = builderInterface; Conditions = new List <IEventCondition>(); }
public HierarchicalEventSubscriptionBuilder( SubscriptionBuilderInterface builderInterface, TTarget target ) : base(builderInterface) { Target = target; }
public static SubscriptionBuilderInterface <TPayload> When <TPayload>( this SubscriptionBuilderInterface <TPayload> builder, Func <TPayload, bool> condition ) { builder .Builder .Conditions .Add(new DelegateEventCondition <TPayload>(condition)); return(builder); }
public static SubscriptionBuilderInterface <TPayload> On <TPayload>( this SubscriptionBuilderInterface root, Event <TPayload> @event ) { Check.NotNull(root, nameof(root)); Check.NotNull(@event, nameof(@event)); var builder = new EventSubscriptionBuilder <TPayload>(root) { Event = @event }; return(new SubscriptionBuilderInterface <TPayload>(builder)); }
public static SubscriptionBuilderInterface <TArgs> On <TTarget, TArgs>( this SubscriptionBuilderInterface root, HierarchicalEvent <TTarget, TArgs> @event, TTarget target ) where TArgs : HierarchicalEventArgs <TTarget> { Check.NotNull(root, nameof(root)); Check.NotNull(@event, nameof(@event)); var builder = new HierarchicalEventSubscriptionBuilder <TTarget, TArgs>(root, target) { Event = @event }; return(new SubscriptionBuilderInterface <TArgs>(builder)); }