public virtual IList <ProcessInstanceDto> queryProcessInstances(ProcessInstanceQueryDto queryDto, int?firstResult, int?maxResults) { ProcessEngine engine = ProcessEngine; queryDto.ObjectMapper = ObjectMapper; ProcessInstanceQuery query = queryDto.toQuery(engine); IList <ProcessInstance> matchingInstances; if (firstResult != null || maxResults != null) { matchingInstances = executePaginatedQuery(query, firstResult, maxResults); } else { matchingInstances = query.list(); } IList <ProcessInstanceDto> instanceResults = new List <ProcessInstanceDto>(); foreach (ProcessInstance instance in matchingInstances) { ProcessInstanceDto resultInstance = ProcessInstanceDto.fromProcessInstance(instance); instanceResults.Add(resultInstance); } return(instanceResults); }