Example #1
0
 public void Build(IWorkflowBuilder builder)
 {
     builder
     .AsSingleton()
     .StartWith <TimerEvent>(x => x.TimeoutExpression = new LiteralExpression <TimeSpan>("00:00:05"))
     .Then <WriteLine>(x => x.TextExpression          = new JavaScriptExpression <string>("`It's now ${new Date()}. Let's do this thing!`"));
 }
Example #2
0
        public void Build(IWorkflowBuilder builder)
        {
            builder
            .AsSingleton()
            .For(0, 3, iterate =>
                 iterate.For(0, 3, iterate => iterate
                             .Then <Fork>(fork => fork.WithBranches("A", "B"), fork =>
            {
                fork
                .When("A")
                .Timer(Duration.FromSeconds(5)).WithId("timer-a")
                .WriteLine("Timer A went off. Exiting fork").WithId("write-line-a")
                .ThenNamed("Join2");

                fork
                .When("B")
                .While(true, iterate => iterate
                       .IfTrue(true, ifTrue => ifTrue
                               .Timer(Duration.FromSeconds(1)).WithId("timer-b")
                               .WriteLine("Timer B went off. Looping.").WithId("write-line-b"))
                       ).WithId("while-true")
                .ThenNamed("Join2");
            })
                             .Add <Join>(join => join.WithMode(Join.JoinMode.WaitAny)).WithName("Join2")
                             ).WithId("for-2"))
            .WithId("for-1")
            .WriteLine("Workflow done.");
        }
Example #3
0
 public void Build(IWorkflowBuilder builder)
 {
     builder
         .AsSingleton()
         .Timer(Duration.FromSeconds(30))
         .WriteLine(context => $"{context.WorkflowExecutionContext.WorkflowInstance.Id} triggered by timer at {_clock.GetCurrentInstant()}.")
         .Timer(Duration.FromSeconds(30))
         .WriteLine(context => $"{context.WorkflowExecutionContext.WorkflowInstance.Id} resumed by timer at {_clock.GetCurrentInstant()}.");
 }
Example #4
0
 public void Build(IWorkflowBuilder builder)
 {
     builder
     .AsSingleton()
     .Timer(Duration.FromSeconds(1))
     .WriteLine(context => $"{context.WorkflowInstance.Id} - Timer event at {DateTime.Now}. Waiting for a couple of seconds.")
     .Timer(Duration.FromSeconds(2))
     .WriteLine(context => $"{context.WorkflowInstance.Id} - Resuming at {DateTime.Now}.")
     .Timer(Duration.FromSeconds(1))
     .WriteLine(context => $"{context.WorkflowInstance.Id} - Finished.");
 }