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();
        }
Example #2
0
        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();
        }