public DefinitionService(IDefinitionRepository repository, IWorkflowLoader loader, IClusterBackplane backplane, ILoggerFactory loggerFactory) { _repository = repository; _loader = loader; _backplane = backplane; _logger = loggerFactory.CreateLogger(GetType()); }
public RedisBackplane(string connectionString, string channel, IDefinitionRepository repository, IWorkflowLoader loader, ILoggerFactory logFactory) { _connectionString = connectionString; _channel = channel; _repository = repository; _loader = loader; _logger = logFactory.CreateLogger(GetType()); }
//This is all in another app Domain public async Task <WorkflowState> Start(IWorkflowContextPersistor persistor, IWorkflowLoader loader, string workflowId, int version, string systemId, string initialData) { WorkflowContext context = new WorkflowContext(workflowId, version, systemId) { GlobalParameters = JObject.Parse(initialData) }; var result = await CreateGraphAndExecute(context, loader, persistor); return(result); }
public WmsAPI(ISessionFactory sessionFactory, IWmsXmlConverter converter, IWorkflowLoader loader) { Contract.Requires(sessionFactory != null); Contract.Requires(converter != null); Contract.Requires(loader != null); SessionFactory = sessionFactory; Converter = converter; Loader = loader; }
public WorkflowEngine( IValuesEngine valuesEngine, IYamlSerializers serializers, ISecretTracker secretTracker, IConsole console, IJsonHttpClientFactory clientFactory, IBlueprintManager blueprintManager, IWorkflowLoader workflowLoader) { _valuesEngine = valuesEngine; _serializers = serializers; _secretTracker = secretTracker; _console = console; _clientFactory = clientFactory; _blueprintManager = blueprintManager; _workflowLoader = workflowLoader; }
private WorkflowState CreateGraphAndExecute(WorkflowContext context, IWorkflowLoader loader, IWorkflowContextPersistor instancePersistor, bool isResume = false) { IWorkflowInstance workflowInstance = loader.LoadWorkflow(context.WorkflowId, context.WorkflowVersion, context , new Controller(instancePersistor, context)); workflowInstance.Initialize().Wait(); var state = isResume ? workflowInstance.Resume().Result :workflowInstance.Execute().Result; var persistentState = instancePersistor.Save(context); return(new WorkflowState() { Context = persistentState.Context, Id = persistentState.InstanceId, State = state, RequiredParameters = context.RequiredParameters.ToArray() }); }
public WorkflowCommands( IWorkflowLoader workflowLoader, IWorkflowEngine workflowEngine, IValuesEngine valuesEngine, ITemplateEngineFactory templateEngineFactory, IYamlSerializers serializers, IPatternMatcherFactory patternMatcherFactory, ISecretTracker secretTracker, IBlueprintManager blueprintManager, IConsole console) { _workflowLoader = workflowLoader; _workflowEngine = workflowEngine; _valuesEngine = valuesEngine; _templateEngineFactory = templateEngineFactory; _serializers = serializers; _patternMatcherFactory = patternMatcherFactory; _secretTracker = secretTracker; _blueprintManager = blueprintManager; _console = console; }
public DataService(ISessionFactory sessionFactory, IWmsXmlConverter converter, IWorkflowLoader loader) : base(sessionFactory, converter, loader) { }
private async Task <WorkflowState> CreateGraphAndExecute(WorkflowContext context, IWorkflowLoader loader, IWorkflowContextPersistor instancePersistor, bool isResume = false) { IWorkflowInstance workflowInstance = loader.LoadWorkflow(context.WorkflowId, context.WorkflowVersion, context , new Controller(instancePersistor, context)); await workflowInstance.Initialize(); var state = isResume ? await workflowInstance.Resume() : await workflowInstance.Execute(); instancePersistor.Save(context); return(new WorkflowState() { Context = context.ToJson(), Id = workflowInstance.Id, State = state }); }
public async Task <WorkflowState> Resume(IWorkflowContextPersistor persistor, IWorkflowLoader loader, string workflowInstanceId, string data) { var context = persistor.Load(workflowInstanceId); if (context == null) { throw new WorkflowEngineException("Workflow context can not be null"); } if (string.IsNullOrWhiteSpace(context.WorkflowId)) { throw new WorkflowEngineException("workflowId is missing in the route"); } context.MergeGlobalContexts(JObject.Parse(data)); var result = await CreateGraphAndExecute(context, loader, persistor, true); return(result); }