public IEnumerable <HistoryItem> Build(WorkflowObject workflowObject, Filter actEntryFilter) { var clarifyDataSet = _session.CreateDataSet(); var workflowObjectInfo = WorkflowObjectInfo.GetObjectInfo(workflowObject.Type); var workflowGeneric = clarifyDataSet.CreateGenericWithFields(workflowObjectInfo.ObjectName); workflowGeneric.AppendFilter(workflowObjectInfo.IDFieldName, StringOps.Equals, workflowObject.Id); var inverseActivityRelation = workflowObjectInfo.ActivityRelation; var activityRelation = _schemaCache.GetRelation("act_entry", inverseActivityRelation).InverseRelation; var actEntryGeneric = workflowGeneric.Traverse(activityRelation.Name); actEntryGeneric.AppendSort("entry_time", false); if (actEntryFilter != null) { actEntryGeneric.Filter.AddFilter(actEntryFilter); } var templateDictionary = _templatePolicyConfiguration.RenderPolicies(workflowObject); //query generic hierarchy and while using act entry templates transform the results into HistoryItems var assembler = _container.With(templateDictionary).With(workflowObject).GetInstance <HistoryItemAssembler>(); return(assembler.Assemble(actEntryGeneric)); }
private IEnumerable <HistoryItem> Build(HistoryRequest request, Action <ClarifyGeneric, WorkflowObjectInfo> genericAction) { var clarifyDataSet = _session.CreateDataSet(); var workflowObjectInfo = WorkflowObjectInfo.GetObjectInfo(request.WorkflowObject.Type); var workflowGeneric = clarifyDataSet.CreateGenericWithFields(workflowObjectInfo.ObjectName); if (workflowObjectInfo.HasIDFieldName) { workflowGeneric.DataFields.Add(workflowObjectInfo.IDFieldName); } genericAction(workflowGeneric, workflowObjectInfo); var inverseActivityRelation = workflowObjectInfo.ActivityRelation; var activityRelation = _schemaCache.GetRelation("act_entry", inverseActivityRelation).InverseRelation; var actEntryGeneric = workflowGeneric.Traverse(activityRelation.Name); actEntryGeneric.AppendSort("entry_time", false); actEntryGeneric.AppendSort("objid", false); if (request.Since.HasValue) { var filter = new FilterExpression().MoreThan("entry_time", request.Since.Value); actEntryGeneric.Filter.AddFilter(filter); } var templateDictionary = _templatePolicyConfiguration.RenderPolicies(request.WorkflowObject); //query generic hierarchy and while using act entry templates transform the results into HistoryItems return(_historyItemAssembler.Assemble(actEntryGeneric, templateDictionary, request)); }