/// <summary>
        /// Helper method to schedule an activity task
        /// </summary>
        /// <param name="activityContext">Activity setup context.</param>
        /// <returns>Properly set up decision completed request.</returns>
        protected RespondDecisionTaskCompletedRequest ScheduleActivityTask(WorkflowActivitySetupContext activityContext)
        {
            var attributes = new ScheduleActivityTaskDecisionAttributes
            {
                ActivityId   = activityContext.ActivityId,
                ActivityType = new ActivityType
                {
                    Name    = activityContext.ActivityName,
                    Version = activityContext.ActivityVersion
                },
                Control                = activityContext.Control,
                HeartbeatTimeout       = activityContext.HeartbeatTimeout,
                Input                  = activityContext.Input,
                ScheduleToCloseTimeout = activityContext.ScheduleToCloseTimeout,
                ScheduleToStartTimeout = activityContext.ScheduleToStartTimeout,
                StartToCloseTimeout    = activityContext.StartToCloseTimeout,
                TaskList               = new TaskList
                {
                    Name = activityContext.TaskList
                }
            };

            var decisionRequest = new RespondDecisionTaskCompletedRequest
            {
                Decisions = new List <Decision>
                {
                    new Decision
                    {
                        DecisionType = "ScheduleActivityTask",
                        ScheduleActivityTaskDecisionAttributes = attributes
                    }
                }
            };

            Debug.WriteLine(">>> Decision: ScheduleActivityTask " +
                            attributes.ActivityType.Name + " (" + attributes.ActivityType.Version + ")");
            return(decisionRequest);
        }
        /// <summary>
        /// Helper method to schedule an activity task
        /// </summary>
        /// <param name="activityContext">Activity setup context.</param>
        /// <returns>Properly set up decision completed request.</returns>
        protected RespondDecisionTaskCompletedRequest ScheduleActivityTask(WorkflowActivitySetupContext activityContext)
        {
            var attributes = new ScheduleActivityTaskDecisionAttributes
            {
                ActivityId = activityContext.ActivityId,
                ActivityType = new ActivityType
                {
                    Name = activityContext.ActivityName,
                    Version = activityContext.ActivityVersion
                },
                Control = activityContext.Control,
                HeartbeatTimeout = activityContext.HeartbeatTimeout,
                Input = activityContext.Input,
                ScheduleToCloseTimeout = activityContext.ScheduleToCloseTimeout,
                ScheduleToStartTimeout = activityContext.ScheduleToStartTimeout,
                StartToCloseTimeout = activityContext.StartToCloseTimeout,
                TaskList = new TaskList
                    {
                        Name = activityContext.TaskList
                    }
            };

            var decisionRequest = new RespondDecisionTaskCompletedRequest
            {
                Decisions = new List<Decision>
                    {
                        new Decision
                            {
                                DecisionType = "ScheduleActivityTask",
                                ScheduleActivityTaskDecisionAttributes = attributes
                            }
                    }
            };

            Debug.WriteLine(">>> Decision: ScheduleActivityTask " +
                attributes.ActivityType.Name + " (" + attributes.ActivityType.Version + ")");
            return decisionRequest;
        }