Пример #1
0
        public void Execute(Workflow workflow)
        {
            FileCreationWorkflow fcw = (FileCreationWorkflow)workflow;

            File.WriteAllText(fcw.GetFilePath("__FirstFile"), "Example workflow");
            workflow.ResumeTrigger = FileCreationWorkflow.Trigger.WriteSecondFile.ToString();
        }
Пример #2
0
        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);
        }
Пример #4
0
        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);
            }



        }