public void AddTask(string key, TaskStateData value) { if (string.IsNullOrEmpty(key)) { return; } Tasks.Add(key, value); }
protected override void Execute(NativeActivityContext context) { Log.Debug("GenericTask -> Start"); var workflowStatus = context.GetExtension <WorkflowStateData>(); if (OnRun != null) { TaskStateData taskState = null; if (workflowStatus.Tasks.ContainsKey(TaskCode.Get(context))) { taskState = workflowStatus.Tasks[TaskCode.Get(context)]; } context.ScheduleAction(OnRun, taskState); } Log.Debug("GenericTask -> End"); }
/// <summary> /// Executes after "client" OnComplete callback /// </summary> /// <param name="context">Context</param> /// <param name="completedInstance">ActivityInstance</param> /// <param name="result">TaskStateData</param> private void OnClientCompleteCallBack(NativeActivityContext context, ActivityInstance completedInstance, TaskStateData result) { Log.Debug("OnClientCompleteCallBack -> Start"); var workflowStatusEx = context.GetExtension <WorkflowStateData>(); var workflowStatusProp = context.Properties.Find(WorkflowStateData.Name) as WorkflowStateData; if (workflowStatusProp != null) { workflowStatusEx.Parameters = workflowStatusProp.Parameters; workflowStatusEx.Tasks = workflowStatusProp.Tasks; workflowStatusEx.Result = workflowStatusProp.Result; } Log.Debug("OnClientCompleteCallBack -> End"); }
/// <summary> /// Executes after "client" OnInit callback /// </summary> /// <param name="context">Context</param> /// <param name="completedInstance">ActivityInstance</param> /// <param name="result">TaskStateData</param> private void OnInitCallback(NativeActivityContext context, ActivityInstance completedInstance, TaskStateData result) { Log.Debug("OnInitCallback -> Start"); var workflowStatus = context.Properties.Find(WorkflowStateData.Name) as WorkflowStateData; if (workflowStatus == null) { throw new Exception("Cannot find WorkflowStateData"); } var task = workflowStatus.Tasks[TaskCode]; SetExpiry(context, task.TaskInfo.ExpiresWhen, task.TaskInfo.ExpiresIn); context.ScheduleActivity(_approveSequence, OnCompleteCallback); Log.Debug("OnInitCallback -> End"); }