public static ActivityConfigurator <TWorkflow, TInstance> When <TWorkflow, TInstance>( this StateConfigurator <TWorkflow, TInstance> stateConfigurator, Expression <Func <TWorkflow, Event> > eventExpression, Action <ActivityConfigurator <TWorkflow, TInstance> > configurationAction) where TWorkflow : class where TInstance : class { var configurator = new SimpleActivityConfigurator <TWorkflow, TInstance>(stateConfigurator, eventExpression); stateConfigurator.AddConfigurator(configurator); configurationAction(configurator); return(configurator); }
/// <summary> /// Finally is triggered upon entry to the Final state /// </summary> /// <typeparam name="TWorkflow"></typeparam> /// <typeparam name="TInstance"></typeparam> /// <param name="stateMachineConfigurator"></param> /// <param name="configurationAction"></param> /// <returns></returns> public static ActivityConfigurator <TWorkflow, TInstance> Finally <TWorkflow, TInstance>( this StateMachineConfigurator <TWorkflow, TInstance> stateMachineConfigurator, Action <ActivityConfigurator <TWorkflow, TInstance> > configurationAction) where TWorkflow : class where TInstance : class { var stateConfigurator = stateMachineConfigurator.DuringAny(); Expression <Func <State, Event> > selector = x => x.Entry; string eventName = StateMachineWorkflow.FinalStateName + "." + selector.MemberName(); var activityConfigurator = new SimpleActivityConfigurator <TWorkflow, TInstance>(stateConfigurator, eventName); stateConfigurator.AddConfigurator(activityConfigurator); configurationAction(activityConfigurator); return(activityConfigurator); }