public WorkflowDefinition BuildActionManager()
 {
     RegistryContainer.Register <WorkflowActionManager>(
         new WorkflowActionManager(() =>
                                   new WorkflowStateManager(WorkflowStates[InitialWorkflowStateName]),
                                   () => this));
     return(this);
 }
 public WorkflowDefinition RegisterTypes()
 {
     RegistryContainer.Register <WorkflowActionRegistry>(new WorkflowActionRegistry(WorkflowActions));
     RegistryContainer.Register <WorkflowStateRegistry>(new WorkflowStateRegistry(WorkflowStates));
     RegistryContainer.Register <WorkflowEventRegistry>(new WorkflowEventRegistry(WorkflowEventActions));
     RegistryContainer.Register <WorkflowListenerRegistry>(new WorkflowListenerRegistry(WorkflowListeners));
     RegistryContainer.Register <WorkflowObjectTypeRegistry>(new WorkflowObjectTypeRegistry(WorkflowObjectTypes));
     RegistryContainer.Register <WorkflowDatabaseEngine>(new WorkflowDatabaseEngine(() => new WorkflowSQLConnection(DatabaseConfig)));
     RegistryContainer.Register <WorkflowDefinition>(this);
     return(this);
 }
        public static WorkflowCondition BuildFromConfig(WorkflowConditionalActionConfig workflowConditionalActionConfig)
        {
            var conditionalActions = new Dictionary <object, Func <WorkflowAction> >();
            var registry           = RegistryContainer.Resolve <WorkflowActionRegistry>();

            workflowConditionalActionConfig
            .WorkflowConditions
            .ConditionalActions
            .ForEach(condition =>
                     conditionalActions[condition.OptionValue] = () => registry[condition.WorkflowAction]);
            return(new WorkflowCondition(workflowConditionalActionConfig.WorkflowConditions.ConditionalParamter, conditionalActions));
        }
 private void SetNewManager(WorkflowStateManager manager)
 {
     RegistryContainer.Register <WorkflowActionManager>(
         new WorkflowActionManager(() => manager, () => this));
 }
 public WorkflowActionManager CurrentActionManager()
 {
     return(RegistryContainer.Resolve <WorkflowActionManager>());
 }
 public WorkflowDefinition FindAction(Action <WorkflowActionRegistry> registryAction)
 {
     registryAction(RegistryContainer.Resolve <WorkflowActionRegistry>());
     return(this);
 }