static void Main(string[] args) { //Creating new WorkFlow object and its empty list of steps. var workflow = new WorkFlow(); //Adding new steps to workflow object created. workflow.AddStep(new Step("step 1")); workflow.AddStep(new Step("step 2")); workflow.AddStep(new Step("step 3")); //Running the workflow. var workflowengine = new WorkFlowEngine(); workflowengine.Run(workflow); }
/// <summary> /// 初始化 /// </summary> public static void Initialization(PlcConfig plc, WorkFolwConfig flow) { PlcConfig = plc; FlowConfig = flow; var modBuses = new List <Tuple <string, ModBusBase, Dictionary <string, PlcAddress> > >(); if (flow?.WorkFlows != null && flow?.WorkFlows?.Length > 0 && plc?.PlcDevices != null && plc?.PlcDevices?.Count > 0) { //创建设备对象和地址 foreach (var device in plc.PlcDevices) { ModBusBase modBus; var modbusmodel = ModbusConf.CnfModel.FirstOrDefault(x => x.Name == device.Name); if (modbusmodel == null) { continue; } if (modbusmodel.ConnectMode == Enums.ConnectMode.MODBUSRTU) { modBus = new ModbusRtuClient(modbusmodel.PortName, modbusmodel.BaudRate, modbusmodel.Station, modbusmodel.IsAddressStartWithZero, modbusmodel.DataBits, modbusmodel.StopBits, modbusmodel.Parity); } else { modBus = new ModbusTcp(modbusmodel.IpAddress, modbusmodel.Port, modbusmodel.Station, modbusmodel.IsAddressStartWithZero); } modBus.Name = device.Name; //地址 var addressdict = new Dictionary <string, PlcAddress>(); if (device.Addresses != null) { foreach (var address in device.Addresses) { addressdict[address.Name] = address; } } else { addressdict = new Dictionary <string, PlcAddress>(); } modBuses.Add(new Tuple <string, ModBusBase, Dictionary <string, PlcAddress> >(modBus.Name, modBus, addressdict)); } //创建工作流 foreach (var work in flow.WorkFlows) { var modbus = modBuses.FirstOrDefault(x => x.Item1 == work.PlcDeviceName); if (modbus == null) { Logger.Device.Info($"WorkFlow:{work.Name} Not Found PlcDeviceName:{work.PlcDeviceName}"); continue; } var engine = new WorkFlowEngine(work, modbus.Item2, modbus.Item3); workFlowEngines.Add(engine); ServiceManager.Services.Add(engine); } } }
private static void Main() { var workFlow = new WorkFlow(); workFlow.AddActivity(new UploadVideo()); workFlow.AddActivity(new CallWebService()); workFlow.AddActivity(new SendEmail()); workFlow.AddActivity(new ChangeVideoStatus()); WorkFlowEngine.Run(workFlow); }
static void Main(string[] args) { Workflow workFlow = new Workflow(); workFlow.AddTask(new VideoUploader()); workFlow.AddTask(new ChangeStatus()); WorkFlowEngine engine = new WorkFlowEngine(); engine.Run(workFlow); }
static void Main(string[] args) { var workFlow = new WorkFlow(); workFlow.AddWorkflow(new SendMessage()); workFlow.AddWorkflow(new GenerateSchema()); var workFlowEngine = new WorkFlowEngine(); workFlowEngine.Run(workFlow); }
public static void Run() { var workflow = new WorkFlow(); workflow.Add(new VideoUploader()); workflow.Add(new VideoEncoder()); workflow.Add(new MailSender()); workflow.Add(new StatusChanger()); var engine = new WorkFlowEngine(); engine.Run(workflow); }
static void Main(string[] args) { var workflow = new Workflow(); workflow.Add(new UploadVideo()); workflow.Add(new NotifyWebService()); workflow.Add(new NotifyVideoOwner()); workflow.Add(new UpdateDatabase()); var workflowEngine = new WorkFlowEngine(); workflowEngine.Run(workflow); }
private static void Main(string[] args) { var workFlow = new Workflow(); workFlow.Add(new VideoUploader()); workFlow.Add(new CallWebService()); workFlow.Add(new SendEmail()); var engine = new WorkFlowEngine(); engine.Run(workFlow); Console.ReadLine(); }
public void Exercise() { var workFlowEngine = new WorkFlowEngine(); var activitiesList = new List <IActivity> { new Upload(), new CallService(), new SendEmail(), new Status() }; var workFlow = new WorkFlow(activitiesList); workFlowEngine.Run(workFlow); }
static void UseWorkFlow() { var workFlow = new WorkFlow(); workFlow.Add(new VideoUploador()); workFlow.Add(new SendEmail()); workFlow.Add(new CallWebService()); workFlow.Remove(new CallWebService()); var engine = new WorkFlowEngine(); engine.Run(workFlow); Console.ReadLine(); }
public static IWorkFlowEngine TypeCreate() { var workflowEngine = new WorkFlowEngine(new IoCMySqlExecutingRepository(), new IoCMySqlExecutingRepository(), new Never.Serialization.EasyJsonSerializer()); workflowEngine.TemplateEngine.Register(new Template("请病假申请").Next <请假申请>().Next <组长审批, 主管审批>(CoordinationMode.Meanwhile).Next <人事审批>().End()); workflowEngine.TemplateEngine.Register(new Template("请节日假申请").Next <请假申请>().Next <组长审批>().Next <人事审批>().End()); workflowEngine.TemplateEngine.Register(new Template("请婚姻假申请").Next <请假申请>().Next <组长审批, 主管审批>().Next <人事审批>().End()); workflowEngine.TemplateEngine.TestCompliant += (o, e) => { e.Register <请假申请>(new 请假申请消息(), (x, y) => { return(y is 请假申请消息); }); e.Register <主管审批>(new 主管审批意见结果(), (x, y) => { return(y is 请假申请消息); }); e.Register <组长审批>(new 组长审批意见结果(), (x, y) => { return(y is 请假申请消息); }); e.Register <人事审批>(new 人事审批请假意见结果(), (x, y) => { return(y is 组长审批意见结果 || y is 主管审批意见结果); }); }; workflowEngine.Startup(); return(workflowEngine); }
public void TestMethod() { var workFlowEngine = new WorkFlowEngine(new MSSQLIHibernate()); workFlowEngine.Start("Payment", new Guid("d407cc11-fd06-4d8c-8cb8-9eeb2561bd07"), "Sago的申请"); }