public void AddWorkItem(SysWorkItem wi, SysProcessInstance pi, SysActivityInstance ai) { T_WorkItemBase wiBase = this.InsertWorkItemBase(wi, pi, ai); string str = new CustomWorkItemHandler(this.Context).OnWorkItemCreating(wiBase, wi); wi.WwfBookmarkId = str; this.Context.Insert(wi); wi.ProcessInstance = pi; wi.ActivityInstance = ai; ai.WorkItems.Add(wi); wi.ActivityParticipant = ai.Activity.ActivityParticipants.FirstOrDefault <SysActivityParticipant>(i => i.ActivityParticipantId == wi.ActivityParticipantId); wi.ApproveGroup = ai.ApproveGroups.FirstOrDefault <SysWorkItemApproveGroup>(i => i.ApproveGroupId == wi.ApproveGroupId); wi.ApproveGroup.WorkItems.Add(wi); new ActivityRemindHandler(this, pi, ai, ActivityRemindUseTimeType.WorkItemCreate, wi, null).Execute(); }
public void UpdateWorkItem(SysWorkItem wi, SysProcessInstance pi, SysActivityInstance ai) { this.UpdateWorkItemBaseState(wi); this.Context.Update(wi); if (wi.Status == 1) { CustomWorkItemHandler handler = new CustomWorkItemHandler(this.Context); int wiBaseId = wi.WorkItemBaseId.Value; int workItemId = wi.WorkItemId; string wwfBookmarkId = wi.WwfBookmarkId; handler.OnWorkItemCompleted(wiBaseId, workItemId, wwfBookmarkId); if (ai.Activity.ActivityType == 6) { WorkItemWrapper wrapper = new WorkItemWrapper(this, wi, pi); int? result = new int?(CompleteWorkItemMessage_Approve.ConvertBoolToApproveResult(wrapper.ApproveResult.Value)); new ActivityRemindHandler(this, pi, ai, ActivityRemindUseTimeType.WorkItemFinished, wi, result).Execute(); } else { new ActivityRemindHandler(this, pi, ai, ActivityRemindUseTimeType.WorkItemFinished, wi, null).Execute(); } } }