public void Execute(Workflow workflow) { FileCreationWorkflow fcw = (FileCreationWorkflow)workflow; File.WriteAllText(fcw.GetFilePath("__FirstFile"), "Example workflow"); workflow.ResumeTrigger = FileCreationWorkflow.Trigger.WriteSecondFile.ToString(); }
public void Execute(Workflow workflow) { // clean up all the created files FileCreationWorkflow fcw = (FileCreationWorkflow)workflow; string[] files = Directory.GetFiles(fcw.RootFolder, "__*File*.txt"); foreach (string f in files) { File.Delete(f); } fcw.ResumeTrigger = FileCreationWorkflow.Trigger.Complete.ToString(); }
public void Execute(Workflow workflow) { FileCreationWorkflow fcw = (FileCreationWorkflow)workflow; fcw.SecondFileWriteCount += 1; File.WriteAllText(fcw.GetFilePath("__SecondFile"), "Example workflow"); if (fcw.SecondFileWriteCount == 5) { fcw.ResumeTrigger = FileCreationWorkflow.Trigger.CleanUp.ToString(); } else { fcw.ResumeTrigger = FileCreationWorkflow.Trigger.WriteFirstFile.ToString(); } fcw.ResumeOn = DateTime.UtcNow.AddSeconds(5); }
void WorkerThreadFunc() { // fire up the server, this will run as part of the service (you can set the workflow store here) IWorkflowStore workflowStore = BootStrapper.MongoDbStore(); //IWorkflowStore workflowStore = BootStrapper.MemoryStore(); //IWorkflowStore workflowStore = BootStrapper.RavenDbEmbeddedStore(); IWorkflowServer workflowServer = new WorkflowServer(workflowStore); workflowServer.RegisterWorkflowType <FileCreationWorkflow>(); // create a new example workflow if it hasn't been registered already FileCreationWorkflow workflow = new FileCreationWorkflow(FileCreationWorkflow.State.Start); workflow.RootFolder = "C:\\Temp\\"; workflow.ResumeTrigger = FileCreationWorkflow.Trigger.WriteFirstFile.ToString(); workflow.Priority = 5; workflowServer.RegisterWorkflow(workflow); while (!_shutdownEvent.WaitOne(0)) { int executedCount = 0; try { executedCount = workflowServer.ExecuteWorkflows(5); } catch (Exception) { // do some logging! } // if no workflows were found, sleepy sleep - you should create an app setting for the poll // interval appropriate to you if (executedCount == 0) { Thread.Sleep(1000); } } }
void WorkerThreadFunc() { // fire up the server, this will run as part of the service (you can set the workflow store here) //IWorkflowStore workflowStore = BootStrapper.MongoDbStore(); //IWorkflowStore workflowStore = BootStrapper.MemoryStore(); IWorkflowStore workflowStore = BootStrapper.RavenDbEmbeddedStore(); IWorkflowServer workflowServer = new WorkflowServer(workflowStore); workflowServer.RegisterWorkflowType<FileCreationWorkflow>(); // create a new example workflow if it hasn't been registered already FileCreationWorkflow workflow = new FileCreationWorkflow(FileCreationWorkflow.State.Start); workflow.RootFolder = "C:\\Temp\\"; workflow.ResumeTrigger = FileCreationWorkflow.Trigger.WriteFirstFile.ToString(); workflowServer.RegisterWorkflow(workflow); while (!_shutdownEvent.WaitOne(0)) { try { workflowServer.ExecuteWorkflows(5); } catch (Exception) { Thread.Sleep(1000); } // sleepy sleep Thread.Sleep(1000); } }