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!`")); }
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."); }
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()}."); }
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."); }