public override async Task Run() { Payload.Add(Crate.FromContent(RunTimeCrateLabel, new StandardPayloadDataCM( new KeyValueDTO("DelayTime", GetDelayDescription(GetControl <Duration>("Delay_Duration")))))); //find our action state in operations crate var delayState = OperationalState.CallStack.GetLocalData <string>("Delay"); //extract ActivityResponse type from result if (delayState == "suspended") { //this is second time we are being called. this means alarm has triggered Success(); return; } //get user selected design time duration var delayDuration = GetUserDefinedDelayDuration(); var alarmDTO = CreateAlarm(delayDuration); //post to hub to create an alarm await HubCommunicator.CreateAlarm(alarmDTO); OperationalState.CallStack.StoreLocalData("Delay", "suspended"); RequestPlanExecutionSuspension(); }
public override async Task Run() { //find our action state in operations crate var delayState = OperationalState.CallStack.GetLocalData <string>("Delay"); //extract ActivityResponse type from result if (delayState == "suspended") { //this is second time we are being called. this means alarm has triggered Success(); return; } //get user selected design time duration var delayDuration = GetUserDefinedDelayDuration(); var alarmDTO = CreateAlarm(delayDuration); //post to hub to create an alarm await HubCommunicator.CreateAlarm(alarmDTO); OperationalState.CallStack.StoreLocalData("Delay", "suspended"); RequestPlanExecutionSuspension(); }