private void RedirectWorklistItem()
        {
            string fromUser       = base.GetStringProperty(Constants.SOProperties.ManagementWorklist.FromUser, false);
            string toUser         = base.GetStringProperty(Constants.SOProperties.ManagementWorklist.ToUser, true);
            int    procInstId     = base.GetIntProperty(Constants.SOProperties.ManagementWorklist.ProcessInstanceId, true);
            int    actInstId      = base.GetIntProperty(Constants.SOProperties.ManagementWorklist.ActivityInstanceDestinationId, true);
            int    worklistItemId = base.GetIntProperty(Constants.SOProperties.ManagementWorklist.WorklistItemId, true);


            ServiceObject serviceObject = base.ServiceBroker.Service.ServiceObjects[0];

            serviceObject.Properties.InitResultTable();
            DataTable results = base.ServiceBroker.ServicePackage.ResultTable;

            WorkflowManagementServer mngServer = this.ServiceBroker.K2Connection.GetConnection <WorkflowManagementServer>();

            using (mngServer.Connection)
            {
                mngServer.RedirectWorklistItem(fromUser, toUser, procInstId, actInstId, worklistItemId);
            }
        }
        //sample that shows how to manage worklist items.
        //In this sample, we want to redirect all tasks from one user to another user
        public void ManageWorklistItems()
        {
            //establish the connection
            WorkflowManagementServer K2Mgmt = new WorkflowManagementServer();

            K2Mgmt.CreateConnection();
            K2Mgmt.Connection.Open("connectionstring");

            //build up a filter for the list of worklist items. Here, we want to return all the worklist items for a specific user
            WorklistCriteriaFilter wlCritFilter = new WorklistCriteriaFilter();

            wlCritFilter.AddRegularFilter(WorklistFields.Destination, Comparison.Like, "%user1%");
            WorklistItems wlItems = K2Mgmt.GetWorklistItems(wlCritFilter);

            foreach (WorklistItem wlItem in wlItems)
            {
                K2Mgmt.RedirectWorklistItem("user1", "user2", wlItem.ProcInstID, wlItem.ActInstDestID, wlItem.ID);
            }

            //close the connection
            K2Mgmt.Connection.Close();
        }
        private void RedirectWorklistItem()
        {
            string fromUser = base.GetStringProperty(Constants.Properties.ManagementWorklist.FromUser, false);
            string toUser = base.GetStringProperty(Constants.Properties.ManagementWorklist.ToUser, true);
            int procInstId = base.GetIntProperty(Constants.Properties.ManagementWorklist.ProcessInstanceId, true);
            int actInstId = base.GetIntProperty(Constants.Properties.ManagementWorklist.ActivityInstanceDestinationId, true);
            int worklistItemId = base.GetIntProperty(Constants.Properties.ManagementWorklist.WorklistItemId, true);

            ServiceObject serviceObject = base.ServiceBroker.Service.ServiceObjects[0];
            serviceObject.Properties.InitResultTable();
            DataTable results = base.ServiceBroker.ServicePackage.ResultTable;

            WorkflowManagementServer mngServer = new WorkflowManagementServer();

            using (mngServer.CreateConnection())
            {
                mngServer.Open(BaseAPIConnectionString);
                mngServer.RedirectWorklistItem(fromUser, toUser, procInstId, actInstId, worklistItemId);
            }
        }