Example #1
0
 public DefinitionService(IDefinitionRepository repository, IWorkflowLoader loader, IClusterBackplane backplane, ILoggerFactory loggerFactory)
 {
     _repository = repository;
     _loader     = loader;
     _backplane  = backplane;
     _logger     = loggerFactory.CreateLogger(GetType());
 }
Example #2
0
 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);
        }
Example #4
0
        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;
        }
Example #5
0
 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()
            });
        }
Example #7
0
 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;
 }
Example #8
0
 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);
        }