/// <summary> /// 启动工作流 /// </summary> /// <param name="startup"></param> /// <param name="executingRepository"></param> /// <param name="jsonSerializer"></param> /// <param name="templateRepository"></param> /// <param name="serialTaskStrategy"></param> /// <param name="taskschedStrategy"></param> /// <param name="environmentInit"></param> /// <returns></returns> public static ApplicationStartup UseWorlFlow(this ApplicationStartup startup, ITemplateRepository templateRepository, IExecutingRepository executingRepository, IJsonSerializer jsonSerializer, ITaskschedStrategy taskschedStrategy, ISerialTaskStrategy serialTaskStrategy, Action <IWorkFlowEngine> environmentInit) { if (startup.Items.ContainsKey("UseWorlFlow")) { return(startup); } startup.ServiceRegister.RegisterInstance <ITemplateRepository>(templateRepository); startup.ServiceRegister.RegisterInstance <IExecutingRepository>(executingRepository); var engine = new WorkFlowEngine(templateRepository, executingRepository, jsonSerializer, taskschedStrategy ?? new DefaultTaskschedStrategy(), serialTaskStrategy ?? new DefaultSerialTaskStrategy()) { ApplicationStartup = startup, }; startup.ServiceRegister.RegisterInstance <IWorkFlowEngine>(engine); startup.RegisterStartService(new StartupService(environmentInit, engine)); startup.Items["UseWorlFlow"] = "true"; return(startup); }
public StartupService(Action <IWorkFlowEngine> environmentInit, WorkFlowEngine workFlowEngine) { this.workFlowEngine = workFlowEngine; this.environmentInit = environmentInit; }