/// <summary> /// /// </summary> /// <param name="id"></param> public virtual void DeleteHistoricIdentityLink(string id) { if (IsHistoryLevelAtLeast(HistoryLevel.AUDIT)) { HistoricIdentityLinkEntityManager.Delete(new KeyValuePair <string, object>("id", id)); } }
public override void Delete(KeyValuePair <string, object> id) { string historicProcessInstanceId = id.Value?.ToString(); if (HistoryManager.HistoryEnabled) { if (historicProcessInstanceId == null) { return; } IHistoricProcessInstanceEntity historicProcessInstance = FindById <IHistoricProcessInstanceEntity>(new KeyValuePair <string, object>("id", historicProcessInstanceId)); HistoricDetailEntityManager.DeleteHistoricDetailsByProcessInstanceId(historicProcessInstanceId); HistoricVariableInstanceEntityManager.DeleteHistoricVariableInstanceByProcessInstanceId(historicProcessInstanceId); HistoricActivityInstanceEntityManager.DeleteHistoricActivityInstancesByProcessInstanceId(historicProcessInstanceId); HistoricTaskInstanceEntityManager.DeleteHistoricTaskInstancesByProcessInstanceId(historicProcessInstanceId); HistoricIdentityLinkEntityManager.DeleteHistoricIdentityLinksByProcInstance(historicProcessInstanceId); CommentEntityManager.DeleteCommentsByProcessInstanceId(historicProcessInstanceId); Delete(historicProcessInstance, false); // Also delete any sub-processes that may be active (ACT-821) IList <IHistoricProcessInstanceEntity> selectList = historicProcessInstanceDataManager.FindHistoricProcessInstancesBySuperProcessInstanceId(historicProcessInstanceId); foreach (IHistoricProcessInstanceEntity child in selectList) { Delete(new KeyValuePair <string, object>("id", child.Id)); // NEEDS to be by id, to come again through this method! } } }
// Identity link related history /// <summary> /// /// </summary> /// <param name="identityLink"></param> public virtual void RecordIdentityLinkCreated(IIdentityLinkEntity identityLink) { // It makes no sense storing historic counterpart for an identity-link // that is related // to a process-definition only as this is never kept in history if (IsHistoryLevelAtLeast(HistoryLevel.AUDIT) && (identityLink.ProcessInstanceId is object || identityLink.TaskId is object)) { IHistoricIdentityLinkEntity historicIdentityLinkEntity = HistoricIdentityLinkEntityManager.Create(); historicIdentityLinkEntity.Id = identityLink.Id; historicIdentityLinkEntity.GroupId = identityLink.GroupId; historicIdentityLinkEntity.ProcessInstanceId = identityLink.ProcessInstanceId; historicIdentityLinkEntity.TaskId = identityLink.TaskId; historicIdentityLinkEntity.Type = identityLink.Type; historicIdentityLinkEntity.UserId = identityLink.UserId; HistoricIdentityLinkEntityManager.Insert(historicIdentityLinkEntity, false); } }
public override void Delete(KeyValuePair <string, object> id) { if (HistoryManager.HistoryEnabled) { IHistoricTaskInstanceEntity historicTaskInstance = FindById <IHistoricTaskInstanceEntity>(new KeyValuePair <string, object>("historicTaskInstanceId", id.Value)); if (historicTaskInstance != null) { IList <IHistoricTaskInstanceEntity> subTasks = historicTaskInstanceDataManager.FindHistoricTasksByParentTaskId(historicTaskInstance.Id); foreach (IHistoricTaskInstance subTask in subTasks) { Delete(new KeyValuePair <string, object>("id", subTask.Id)); } var sid = id.Value.ToString(); HistoricDetailEntityManager.DeleteHistoricDetailsByTaskId(sid); HistoricVariableInstanceEntityManager.DeleteHistoricVariableInstancesByTaskId(sid); CommentEntityManager.DeleteCommentsByTaskId(sid); AttachmentEntityManager.DeleteAttachmentsByTaskId(sid); HistoricIdentityLinkEntityManager.DeleteHistoricIdentityLinksByTaskId(sid); Delete(historicTaskInstance); } } }