public WaitForSignalOrAlarm() { Implementation = () => new Pick() { Branches = { new PickBranch { Trigger = new Wakeup() { BookmarkName = new InArgument <string>((c) => BookmarkName.Get(c)) }, Action = new Assign <bool>() { To = new ArgumentReference <bool>{ ArgumentName = "Result" }, Value = true, } }, new PickBranch { Trigger = new Delay { Duration = new InArgument <TimeSpan>((c) => GetDuration(AlarmTime.Get(c))) }, Action = new Assign <bool>() { To = new ArgumentReference <bool>{ ArgumentName = "Result" }, Value = false, } } } }; }