public ComparatorAnonymousInnerClass(ProcessInstanceHistoryLogImpl outerInstance) { this.outerInstance = outerInstance; }
public virtual IProcessInstanceHistoryLog Execute(ICommandContext commandContext) { // Fetch historic process instance IHistoricProcessInstanceEntity historicProcessInstance = commandContext.HistoricProcessInstanceEntityManager.FindById <IHistoricProcessInstanceEntity>(new KeyValuePair <string, object>("id", processInstanceId)); if (historicProcessInstance == null) { return(null); } // Create a log using this historic process instance ProcessInstanceHistoryLogImpl processInstanceHistoryLog = new ProcessInstanceHistoryLogImpl(historicProcessInstance); // Add events, based on query settings // Tasks if (_includeTasks) { IList <IHistoricData> tasks = commandContext.HistoricTaskInstanceEntityManager.FindHistoricTaskInstancesByQueryCriteria((new HistoricTaskInstanceQueryImpl(commandExecutor)).SetProcessInstanceId(processInstanceId)) as IList <IHistoricData>; processInstanceHistoryLog.AddHistoricData(tasks); } // Activities if (_includeActivities) { IList <IHistoricActivityInstance> activities = commandContext.HistoricActivityInstanceEntityManager.FindHistoricActivityInstancesByQueryCriteria((new HistoricActivityInstanceQueryImpl(commandExecutor)).SetProcessInstanceId(processInstanceId), null); processInstanceHistoryLog.AddHistoricData(activities); } // Variables if (_includeVariables) { IList <IHistoricVariableInstance> variables = commandContext.HistoricVariableInstanceEntityManager.FindHistoricVariableInstancesByQueryCriteria((new HistoricVariableInstanceQueryImpl(commandExecutor)).SetProcessInstanceId(processInstanceId), null); processInstanceHistoryLog.AddHistoricData(variables); } // Comment if (_includeComments) { IList <IHistoricData> comments = commandContext.CommentEntityManager.FindCommentsByProcessInstanceId(processInstanceId) as IList <IHistoricData>; processInstanceHistoryLog.AddHistoricData(comments); } // Details: variables if (_includeVariableUpdates) { IList <IHistoricData> variableUpdates = commandContext.HistoricDetailEntityManager.FindHistoricDetailsByQueryCriteria((new HistoricDetailQueryImpl(commandExecutor)).SetVariableUpdates(), null) as IList <IHistoricData>; // Make sure all variables values are fetched (similar to the HistoricVariableInstance query) foreach (IHistoricData historicData in variableUpdates) { IHistoricVariableUpdate variableUpdate = (IHistoricVariableUpdate)historicData; //variableUpdate.Value; } processInstanceHistoryLog.AddHistoricData(variableUpdates); } // Details: form properties if (_includeFormProperties) { IList <IHistoricData> formProperties = commandContext.HistoricDetailEntityManager.FindHistoricDetailsByQueryCriteria((new HistoricDetailQueryImpl(commandExecutor)).FormProperties(), null) as IList <IHistoricData>; processInstanceHistoryLog.AddHistoricData(formProperties); } // All events collected. Sort them by date. processInstanceHistoryLog.orderHistoricData(); return(processInstanceHistoryLog); }