protected internal virtual IList <IHistoricIdentityLink> GetLinksForTask(ICommandContext commandContext) { IHistoricTaskInstanceEntity task = commandContext.HistoricTaskInstanceEntityManager.FindById <IHistoricTaskInstanceEntity>(new KeyValuePair <string, object>("historicTaskInstanceId", taskId)); if (task == null) { throw new ActivitiObjectNotFoundException("No historic task exists with the given id: " + taskId, typeof(IHistoricTaskInstance)); } IList <IHistoricIdentityLink> identityLinks = (IList <IHistoricIdentityLink>)commandContext.HistoricIdentityLinkEntityManager.FindHistoricIdentityLinksByTaskId(taskId); // Similar to GetIdentityLinksForTask, return assignee and owner as // identity link if (task.Assignee is object) { IHistoricIdentityLinkEntity identityLink = commandContext.HistoricIdentityLinkEntityManager.Create(); identityLink.UserId = task.Assignee; identityLink.TaskId = task.Id; identityLink.Type = IdentityLinkType.ASSIGNEE; identityLinks.Add(identityLink); } if (task.Owner is object) { IHistoricIdentityLinkEntity identityLink = commandContext.HistoricIdentityLinkEntityManager.Create(); identityLink.TaskId = task.Id; identityLink.UserId = task.Owner; identityLink.Type = IdentityLinkType.OWNER; identityLinks.Add(identityLink); } return(identityLinks); }
// Task related history /// <summary> /// /// </summary> /// <param name="task"></param> /// <param name="execution"></param> public virtual void RecordTaskCreated(ITaskEntity task, IExecutionEntity execution) { if (IsHistoryLevelAtLeast(HistoryLevel.AUDIT)) { IHistoricTaskInstanceEntity historicTaskInstance = HistoricTaskInstanceEntityManager.Create(task, execution); HistoricTaskInstanceEntityManager.Insert(historicTaskInstance, false); } RecordTaskId(task); }
/// <summary> /// /// </summary> /// <param name="taskId"></param> /// <param name="processDefinitionId"></param> public virtual void RecordTaskProcessDefinitionChange(string taskId, string processDefinitionId) { if (IsHistoryLevelAtLeast(HistoryLevel.ACTIVITY)) { IHistoricTaskInstanceEntity historicTaskInstance = HistoricTaskInstanceEntityManager.FindById <IHistoricTaskInstanceEntity>(new KeyValuePair <string, object>("historicTaskInstanceId", taskId)); if (historicTaskInstance != null) { historicTaskInstance.ProcessDefinitionId = processDefinitionId; } } }
/// <summary> /// /// </summary> /// <param name="taskId"></param> /// <param name="taskDefinitionKey"></param> public virtual void RecordTaskDefinitionKeyChange(string taskId, string taskDefinitionKey) { if (IsHistoryLevelAtLeast(HistoryLevel.AUDIT)) { IHistoricTaskInstanceEntity historicTaskInstance = HistoricTaskInstanceEntityManager.FindById <IHistoricTaskInstanceEntity>(new KeyValuePair <string, object>("historicTaskInstanceId", taskId)); if (historicTaskInstance != null) { historicTaskInstance.TaskDefinitionKey = taskDefinitionKey; } } }
/// <summary> /// /// </summary> /// <param name="taskId"></param> /// <param name="dueDate"></param> public virtual void RecordTaskDueDateChange(string taskId, DateTime dueDate) { if (IsHistoryLevelAtLeast(HistoryLevel.AUDIT)) { IHistoricTaskInstanceEntity historicTaskInstance = HistoricTaskInstanceEntityManager.FindById <IHistoricTaskInstanceEntity>(new KeyValuePair <string, object>("historicTaskInstanceId", taskId)); if (historicTaskInstance != null) { historicTaskInstance.DueDate = dueDate; } } }
/// <summary> /// /// </summary> /// <param name="taskId"></param> /// <param name="deleteReason"></param> public virtual void RecordTaskEnd(string taskId, string deleteReason) { if (IsHistoryLevelAtLeast(HistoryLevel.AUDIT)) { IHistoricTaskInstanceEntity historicTaskInstance = HistoricTaskInstanceEntityManager.FindById <IHistoricTaskInstanceEntity>(new KeyValuePair <string, object>("historicTaskInstanceId", taskId)); if (historicTaskInstance != null) { historicTaskInstance.markEnded(deleteReason); } } }
/// <summary> /// /// </summary> /// <param name="task"></param> public virtual void RecordTaskClaim(ITaskEntity task) { if (IsHistoryLevelAtLeast(HistoryLevel.AUDIT)) { IHistoricTaskInstanceEntity historicTaskInstance = HistoricTaskInstanceEntityManager.FindById <IHistoricTaskInstanceEntity>(new KeyValuePair <string, object>("historicTaskInstanceId", task.Id)); if (historicTaskInstance != null) { historicTaskInstance.ClaimTime = task.ClaimTime; } } }
/// <summary> /// /// </summary> /// <param name="taskId"></param> /// <param name="assignee"></param> /// <param name="assigneeUser"></param> public virtual void RecordTaskAssigneeChange(string taskId, string assignee, string assigneeUser) { if (IsHistoryLevelAtLeast(HistoryLevel.AUDIT)) { IHistoricTaskInstanceEntity historicTaskInstance = HistoricTaskInstanceEntityManager.FindById <IHistoricTaskInstanceEntity>(new KeyValuePair <string, object>("historicTaskInstanceId", taskId)); if (historicTaskInstance != null) { historicTaskInstance.Assignee = assignee; historicTaskInstance.AssigneeUser = assigneeUser; } } }