Example #1
0
        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);
        }