Пример #1
0
        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);
        }
Пример #2
0
        /// <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);
        }