public static JobActivity TakeActivity(string sessionId, string jobId, short nodeId, short epc)
        {
            // Create an activity service i.e. can call all methods in the activity service e.g. TakeActivity, Complete, Cancel etc

            // As we are going to take an activity we need to build up the identity of the activity i.e. jobid, node id, embedded process count
            var actIdentity = new KTA_ActivityServices.JobActivityIdentity();

            actIdentity.JobId  = jobId;
            actIdentity.NodeId = nodeId;
            actIdentity.EmbeddedProcessCount = epc;

            var jobAct = new JobActivity();

            jobAct = actService.TakeActivityAsync(sessionId, actIdentity).GetAwaiter().GetResult();


            //didn't take activity successfully...e.g. maybe someone else just got it
            //so we'd want to advise the user by providing a message and then returning to workqueue


            return(jobAct);
        }
 public static void CancelActivity(string sessionId, KTA_ActivityServices.JobActivityIdentity jobActivity)
 {
     actService.CancelActivityAsync(sessionId, jobActivity).GetAwaiter().GetResult();
 }
        public static void CompleteActivity(string sessionId, string currentUserId, string decisionId, string decisionComments, KTA_ActivityServices.JobActivityIdentity jobActivity)
        {
            var jobActOutput = new JobActivityOutput();

            KTA_ActivityServices.OutputVariableCollection outputVariables = new KTA_ActivityServices.OutputVariableCollection();
            KTA_ActivityServices.OutputVariable           temp            = new KTA_ActivityServices.OutputVariable();

            temp.Id = "ZZZ__LATESTAPPROVAL_APPROVER_N"; temp.Value = currentUserId;
            outputVariables.Add(temp);
            temp    = new KTA_ActivityServices.OutputVariable();
            temp.Id = "ZZZ__LATESTAPPROVAL_APPROVER_C"; temp.Value = decisionComments;
            outputVariables.Add(temp);
            temp    = new KTA_ActivityServices.OutputVariable();
            temp.Id = "ZZZ__LATESTAPPROVAL_DECISION_D"; temp.Value = DateTime.Now;
            outputVariables.Add(temp);
            temp    = new KTA_ActivityServices.OutputVariable();
            temp.Id = "ZZZ__LATESTDECISION"; temp.Value = decisionId;
            outputVariables.Add(temp);

            jobActOutput.OutputVariables = outputVariables;

            actService.CompleteActivityAsync(sessionId, jobActivity, jobActOutput).GetAwaiter().GetResult();
        }