Пример #1
0
        public IWorkflowBlueprint Build(IWorkflow workflow, string activityIdPrefix)
        {
            var workflowTypeName = workflow.GetType().Name;

            Name ??= workflowTypeName;
            DisplayName ??= workflowTypeName;

            WithId(workflowTypeName);
            workflow.Build(this);
            return(BuildBlueprint(activityIdPrefix));
        }
Пример #2
0
        public void RegisterWorkflow(IWorkflow workflow)
        {
            if (_registry.Any(x => x.Item1 == workflow.Id && x.Item2 == workflow.Version))
            {
                throw new InvalidOperationException($"Workflow {workflow.Id} version {workflow.Version} is already registered");
            }

            var builder = (_serviceProvider.GetService(typeof(IWorkflowBuilder)) as IWorkflowBuilder).UseData <object>();

            workflow.Build(builder);
            var def = builder.Build(workflow.Id, workflow.Version);

            _registry.Add(new Tuple <string, int, WorkflowDefinition>(workflow.Id, workflow.Version, def));
        }
Пример #3
0
        public void RegisterWorkflow(IWorkflow workflow)
        {
            if (_registry.Any(x => x.Item1 == workflow.Id && x.Item2 == workflow.Version))
            {
                throw new InvalidOperationException($"Workflow {workflow.Id} version {workflow.Version} is already registered");
            }

            var builder = _serviceProvider.GetService <IWorkflowBuilder>().UseData <object>();

            workflow.Build(builder);
            var def = builder.Build(workflow.Id, workflow.Version);

            _registry.Add(Tuple.Create(workflow.Id, workflow.Version, def));
        }
Пример #4
0
        public void RegisterWorkflow <TData>(IWorkflow <TData> workflow)
            where TData : new()
        {
            if (_registry.Any(x => x.Item1 == workflow.Id && x.Item2 == workflow.Version))
            {
                throw new Exception(String.Format("Workflow {0} version {1} is already registed", workflow.Id, workflow.Version));
            }

            var builder = (_serviceProvider.GetService(typeof(IWorkflowBuilder)) as IWorkflowBuilder).UseData <TData>();

            workflow.Build(builder);
            var def = builder.Build(workflow.Id, workflow.Version);

            _registry.Add(new Tuple <string, int, WorkflowDefinition>(workflow.Id, workflow.Version, def));
        }
Пример #5
0
        public void RegisterWorkflow <TData>(IWorkflow <TData> workflow)
            where TData : new()
        {
            if (_registry.Any(x => x.Item1 == workflow.Id && x.Item2 == workflow.Version && x.Item3 == workflow.TenantId))
            {
                throw new InvalidOperationException($"Workflow {workflow.Id} version {workflow.Version} tenant {workflow.TenantId} is already registed");
            }

            var builder = (_serviceProvider.GetService(typeof(IWorkflowBuilder)) as IWorkflowBuilder).UseData <TData>();

            workflow.Build(builder);
            var def = builder.Build(workflow.Id, workflow.TenantId, workflow.Version);

            _registry.Add(new Tuple <string, int, int?, WorkflowDefinition>(workflow.Id, workflow.Version, workflow.TenantId, def));
        }