public async Task Handle(TrafficLightStateMachine light) { TraceHelper.Log(nameof(RedState)).Invoke(); await Task.Delay(2000); // await light.MoveNext(new GreenState()); }
internal static IO <Task <TrafficLightState> > GreenState () => from _ in TraceHelper.Log(nameof(GreenState)) select(from __ in Task.Delay(TimeSpan.FromSeconds(3)) select new TrafficLightState(YellowState));
internal static IO <Task <TrafficLightState> > RedState () => from _ in TraceHelper.Log(nameof(RedState)) select(from __ in Task.Delay(TimeSpan.FromSeconds(2)) select default(TrafficLightState));