Example #1
0
        /// <summary>
        /// 创建工作流实例
        /// </summary>
        /// <param name="p"></param>
        /// <returns></returns>
        public static WorkflowInstance CreateInstance(Process p, IWorkflowParser parser)
        {
            var workflow = parser.Parse(GetCacheKey(p.ProcessType)
                                        , p.ProcessType.Workflow.Serialized
                                        , p.ProcessType.ActivitySettings);
            var instance = new WorkflowInstance(workflow, p.ID, p.GetInputs());

            //HACK:【重要】强制让Core调度使用同步上下文进行调度而不使用Threaded模式,使得事务与resumption嵌套,便于事务控制和错误处理 20120507
            instance.SynchronizationContext = new WorkflowInstance.DefaultSynchronizationContext();
            //标记为可持久化
            instance.IsPersistable = true;
            //数据字段扩展
            instance.Extensions.Add <DataFieldExtension>(WorkflowBuilder.CreateDataFieldExtension(p));
            //自定义节点扩展
            instance.Extensions.Add <CustomExtension>(new CustomExtension(p.ProcessType.ActivitySettings
                                                                          .Where(o => o is CustomSetting)
                                                                          .Select(o => o as CustomSetting)
                                                                          .ToList()));
            //人工节点扩展
            instance.Extensions.Add <HumanExtension>(new HumanExtension());
            //服务端节点扩展
            instance.Extensions.Add <ServerExtension>(new ServerExtension());
            //并行节点扩展
            instance.Extensions.Add <ParallelExtension>(new ParallelExtension());
            //子流程节点扩展
            instance.Extensions.Add <SubProcessExtension>(new SubProcessExtension());
            return(instance);
        }
Example #2
0
 /// <summary>
 /// 创建工作流实例
 /// </summary>
 /// <param name="p"></param>
 /// <returns></returns>
 public static WorkflowInstance CreateInstance(Process p, IWorkflowParser parser)
 {
     var workflow = parser.Parse(GetCacheKey(p.ProcessType)
         , p.ProcessType.Workflow.Serialized
         , p.ProcessType.ActivitySettings);
     var instance = new WorkflowInstance(workflow, p.ID, p.GetInputs());
     //HACK:【重要】强制让Core调度使用同步上下文进行调度而不使用Threaded模式,使得事务与resumption嵌套,便于事务控制和错误处理 20120507
     instance.SynchronizationContext = new WorkflowInstance.DefaultSynchronizationContext();
     //标记为可持久化
     instance.IsPersistable = true;
     //数据字段扩展
     instance.Extensions.Add<DataFieldExtension>(WorkflowBuilder.CreateDataFieldExtension(p));
     //自定义节点扩展
     instance.Extensions.Add<CustomExtension>(new CustomExtension(p.ProcessType.ActivitySettings
         .Where(o => o is CustomSetting)
         .Select(o => o as CustomSetting)
         .ToList()));
     //人工节点扩展
     instance.Extensions.Add<HumanExtension>(new HumanExtension());
     //服务端节点扩展
     instance.Extensions.Add<ServerExtension>(new ServerExtension());
     //并行节点扩展
     instance.Extensions.Add<ParallelExtension>(new ParallelExtension());
     //子流程节点扩展
     instance.Extensions.Add<SubProcessExtension>(new SubProcessExtension());
     return instance;
 }
Example #3
0
 public ProcessService(ILoggerFactory factory, IWorkflowParser parser, IEventBus eventBus, ISchedulerService schedulerService)
 {
     this._log              = factory.Create(typeof(ProcessService));
     this._parser           = parser;
     this._eventBus         = eventBus;
     this._schedulerService = schedulerService;
 }
Example #4
0
 public ConverterService(IWorkflowConverterFactory factory
     , IProcessService processService
     , IWorkflowParser workflowParser)
 {
     this._factory = factory;
     this._processService = processService;
     this._workflowParser = workflowParser;
 }
Example #5
0
 /// <summary>
 ///
 /// </summary>
 /// <param name="generator">流程的XML数据源</param>
 /// <param name="parser">是流程中XML结点中的转换器,将节点的具体内容转换出来</param>
 /// <param name="schemePersistenceProvider">获取方案的具体操作</param>
 public WorkflowBuilder(IWorkflowGenerator <TSchemeMedium> generator,
                        IWorkflowParser <TSchemeMedium> parser,
                        ISchemePersistenceProvider <TSchemeMedium> schemePersistenceProvider)
 {
     Generator = generator;
     Parser    = parser;
     SchemePersistenceProvider = schemePersistenceProvider;
 }
Example #6
0
 public ConverterService(IWorkflowConverterFactory factory
                         , IProcessService processService
                         , IWorkflowParser workflowParser)
 {
     this._factory        = factory;
     this._processService = processService;
     this._workflowParser = workflowParser;
 }
Example #7
0
 public SubProcessCompleteWaitingResumption(ILoggerFactory factory
                                            , IWorkflowParser parser
                                            , IProcessService processService
                                            , ISchedulerService resumption)
 {
     this._log            = factory.Create(typeof(SubProcessCompleteWaitingResumption));
     this._parser         = parser;
     this._processService = processService;
     this._resumption     = resumption;
 }
 public SubProcessCompleteWaitingResumption(ILoggerFactory factory
      , IWorkflowParser parser
      , IProcessService processService
      , ISchedulerService resumption)
 {
     this._log = factory.Create(typeof(SubProcessCompleteWaitingResumption));
     this._parser = parser;
     this._processService = processService;
     this._resumption = resumption;
 }
Example #9
0
 public TFlowEngine(ILoggerFactory factory
     , IUserService userService
     , IAgentService agentService
     , IWorkItemService workItemService
     , IProcessService processService
     , IProcessTypeService processTypeService
     , ITimeZoneService timeZoneService
     , IWorkflowParser workflowParser
     , IMethodInvoker invoker
     ,ISchedulerService schedulerService)
 {
     this._log = factory.Create(typeof(TFlowEngine));
     this._userService = userService;
     this._agentService = agentService;
     this._workItemService = workItemService;
     this._processService = processService;
     this._processTypeService = processTypeService;
     this._timeZoneService = timeZoneService;
     this._workflowParser = workflowParser;
     this._invoker = invoker;
     this._schedulerService = schedulerService;
 }
Example #10
0
 public TFlowEngine(ILoggerFactory factory
                    , IUserService userService
                    , IAgentService agentService
                    , IWorkItemService workItemService
                    , IProcessService processService
                    , IProcessTypeService processTypeService
                    , ITimeZoneService timeZoneService
                    , IWorkflowParser workflowParser
                    , IMethodInvoker invoker
                    , ISchedulerService schedulerService)
 {
     this._log                = factory.Create(typeof(TFlowEngine));
     this._userService        = userService;
     this._agentService       = agentService;
     this._workItemService    = workItemService;
     this._processService     = processService;
     this._processTypeService = processTypeService;
     this._timeZoneService    = timeZoneService;
     this._workflowParser     = workflowParser;
     this._invoker            = invoker;
     this._schedulerService   = schedulerService;
 }
 public ProcessServiceMock(ILoggerFactory factory, IWorkflowParser parser, IEventBus eventBus, ISchedulerService schedulerService)
     : base(factory, parser, eventBus, schedulerService) { }
Example #12
0
 public ErrorWaitingResumption(ILoggerFactory factory, IWorkflowParser parser)
 {
     this._log = factory.Create(typeof(ErrorWaitingResumption));
     this._parser = parser;
 }
Example #13
0
 public BookmarkWaitingResumption(ILoggerFactory factory, IWorkflowParser parser,IProcessService processService)
 {
     this._log = factory.Create(typeof(BookmarkWaitingResumption));
     this._parser = parser;
     this._processService = processService;
 }
 public static IWorkflowBuilder WithParser <TSchemeMedium>(this WorkflowBuilder <TSchemeMedium> bulder, IWorkflowParser <TSchemeMedium> parser) where TSchemeMedium : class
 {
     bulder.Parser = parser;
     return(bulder);
 }
 public ProcessStartWaitingResumption(ILoggerFactory factory, IWorkflowParser parser)
 {
     this._log = factory.Create(typeof(ProcessStartWaitingResumption));
     this._parser = parser;
 }
Example #16
0
 public ProcessStartWaitingResumption(ILoggerFactory factory, IWorkflowParser parser)
 {
     this._log    = factory.Create(typeof(ProcessStartWaitingResumption));
     this._parser = parser;
 }
Example #17
0
 public BookmarkWaitingResumption(ILoggerFactory factory, IWorkflowParser parser, IProcessService processService)
 {
     this._log            = factory.Create(typeof(BookmarkWaitingResumption));
     this._parser         = parser;
     this._processService = processService;
 }
Example #18
0
 public WorkflowService(IWorkflowParser workflowParser)
 {
     _workflowParser = workflowParser;
 }
Example #19
0
 public ErrorWaitingResumption(ILoggerFactory factory, IWorkflowParser parser)
 {
     this._log    = factory.Create(typeof(ErrorWaitingResumption));
     this._parser = parser;
 }
Example #20
0
 public ProcessService(ILoggerFactory factory, IWorkflowParser parser, IEventBus eventBus, ISchedulerService schedulerService)
 {
     this._log = factory.Create(typeof(ProcessService));
     this._parser = parser;
     this._eventBus = eventBus;
     this._schedulerService = schedulerService;
 }
Example #21
0
 public ProcessServiceMock(ILoggerFactory factory, IWorkflowParser parser, IEventBus eventBus, ISchedulerService schedulerService)
     : base(factory, parser, eventBus, schedulerService)
 {
 }