public static void ScheduleActivity <TReturn>(this IContextWithForks context, TimeSpan delay, IActivityBase <TReturn> activity)
 {
     CheckTimeArgument(delay);
     context.ForkOrchestration(new Extensions.ForkedActivity <TReturn>()
     {
         Delay    = delay,
         Activity = activity
     });
 }
 public static void ScheduleEvent <TEvent>(this IContextWithForks context, TimeSpan delay, IEvent evt)
 {
     CheckTimeArgument(delay);
     context.ForkOrchestration(new Extensions.ForkedRaise()
     {
         Delay = delay,
         Event = evt
     });
 }
 public static void ScheduleOrchestration <TReturn>(this IContextWithForks context, TimeSpan delay, IOrchestration <TReturn> orchestration)
 {
     CheckTimeArgument(delay);
     context.ForkOrchestration(new Extensions.ForkedOrchestration <TReturn>()
     {
         Delay         = delay,
         Orchestration = orchestration
     });
 }
 public static void ScheduleLocalUpdate <TState, TReturn>(this IContextWithForks context, TimeSpan delay, IUpdate <TState, TReturn> update)
     where TState : IState
 {
     CheckTimeArgument(delay);
     context.ForkOrchestration(new Extensions.ForkedLocalUpdate <TState, TReturn>()
     {
         Delay  = delay,
         Update = update
     });
 }