public virtual ExternalTaskQueryBuilder buildQuery(ProcessEngine processEngine) { ExternalTaskQueryBuilder fetchBuilder = processEngine.ExternalTaskService.fetchAndLock(MaxTasks, WorkerId, UsePriority); if (Topics != null) { foreach (FetchExternalTaskTopicDto topicDto in Topics) { ExternalTaskQueryTopicBuilder topicFetchBuilder = fetchBuilder.topic(topicDto.TopicName, topicDto.LockDuration); if (!string.ReferenceEquals(topicDto.BusinessKey, null)) { topicFetchBuilder = topicFetchBuilder.businessKey(topicDto.BusinessKey); } if (!string.ReferenceEquals(topicDto.ProcessDefinitionId, null)) { topicFetchBuilder.processDefinitionId(topicDto.ProcessDefinitionId); } if (topicDto.ProcessDefinitionIdIn != null) { topicFetchBuilder.processDefinitionIdIn(topicDto.ProcessDefinitionIdIn); } if (!string.ReferenceEquals(topicDto.ProcessDefinitionKey, null)) { topicFetchBuilder.processDefinitionKey(topicDto.ProcessDefinitionKey); } if (topicDto.ProcessDefinitionKeyIn != null) { topicFetchBuilder.processDefinitionKeyIn(topicDto.ProcessDefinitionKeyIn); } if (topicDto.Variables != null) { topicFetchBuilder = topicFetchBuilder.variables(topicDto.Variables); } if (topicDto.ProcessVariables != null) { topicFetchBuilder = topicFetchBuilder.processInstanceVariableEquals(topicDto.ProcessVariables); } if (topicDto.DeserializeValues) { topicFetchBuilder = topicFetchBuilder.enableCustomObjectDeserialization(); } if (topicDto.LocalVariables) { topicFetchBuilder = topicFetchBuilder.localVariables(); } if (TRUE.Equals(topicDto.WithoutTenantId)) { topicFetchBuilder = topicFetchBuilder.withoutTenantId(); } if (topicDto.TenantIdIn != null) { topicFetchBuilder = topicFetchBuilder.tenantIdIn(topicDto.TenantIdIn); } fetchBuilder = topicFetchBuilder; } } return(fetchBuilder); }