예제 #1
0
 public void Bind(Event @event, Activity <TInstance> activity)
 {
     if (!_behaviors.TryGetValue(@event, out var builder))
     {
         builder = new ActivityBehaviorBuilder <TInstance>();
         _behaviors.Add(@event, builder);
     }
     builder.Add(activity);
 }
        private static Behavior <TInstance> GetBehavior(EventActivities <TInstance> activities)
        {
            var builder = new ActivityBehaviorBuilder <TInstance>();

            foreach (var activity in activities.GetStateActivityBinders())
            {
                activity.Bind(builder);
            }

            return(builder.Behavior);
        }
        public void Bind(State <TInstance> state)
        {
            var builder = new ActivityBehaviorBuilder <TInstance>();

            foreach (var activity in _activities.GetStateActivityBinders())
            {
                activity.Bind(builder);
            }

            var conditionActivity = new ConditionActivity <TInstance>(_condition, builder.Behavior);

            state.Bind(_event, conditionActivity);
        }
        public void Bind(BehaviorBuilder <TInstance> builder)
        {
            var stateBuilder = new ActivityBehaviorBuilder <TInstance>();

            foreach (var activity in _activities.GetStateActivityBinders())
            {
                activity.Bind(stateBuilder);
            }

            var conditionActivity = new ConditionActivity <TInstance>(_condition, stateBuilder.Behavior);

            builder.Add(conditionActivity);
        }