コード例 #1
0
        public EventSubscriptionBuilder(SubscriptionBuilderInterface builderInterface)
        {
            Check.NotNull(builderInterface, nameof(builderInterface));

            _builderInterface = builderInterface;
            Conditions        = new List <IEventCondition>();
        }
コード例 #2
0
 public HierarchicalEventSubscriptionBuilder(
     SubscriptionBuilderInterface builderInterface,
     TTarget target
     )
     : base(builderInterface)
 {
     Target = target;
 }
コード例 #3
0
        public static SubscriptionBuilderInterface <TPayload> When <TPayload>(
            this SubscriptionBuilderInterface <TPayload> builder,
            Func <TPayload, bool> condition
            )
        {
            builder
            .Builder
            .Conditions
            .Add(new DelegateEventCondition <TPayload>(condition));

            return(builder);
        }
コード例 #4
0
        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));
        }
コード例 #5
0
        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));
        }