public override TaskQuery toObject(JsonObject json) { TaskQueryImpl query = new TaskQueryImpl(); if (json.has(OR_QUERIES)) { foreach (JsonElement jsonElement in JsonUtil.getArray(json, OR_QUERIES)) { query.addOrQuery((TaskQueryImpl)toObject(JsonUtil.getObject(jsonElement))); } } if (json.has(TASK_ID)) { query.taskId(JsonUtil.getString(json, TASK_ID)); } if (json.has(NAME)) { query.taskName(JsonUtil.getString(json, NAME)); } if (json.has(NAME_NOT_EQUAL)) { query.taskNameNotEqual(JsonUtil.getString(json, NAME_NOT_EQUAL)); } if (json.has(NAME_LIKE)) { query.taskNameLike(JsonUtil.getString(json, NAME_LIKE)); } if (json.has(NAME_NOT_LIKE)) { query.taskNameNotLike(JsonUtil.getString(json, NAME_NOT_LIKE)); } if (json.has(DESCRIPTION)) { query.taskDescription(JsonUtil.getString(json, DESCRIPTION)); } if (json.has(DESCRIPTION_LIKE)) { query.taskDescriptionLike(JsonUtil.getString(json, DESCRIPTION_LIKE)); } if (json.has(PRIORITY)) { query.taskPriority(JsonUtil.getInt(json, PRIORITY)); } if (json.has(MIN_PRIORITY)) { query.taskMinPriority(JsonUtil.getInt(json, MIN_PRIORITY)); } if (json.has(MAX_PRIORITY)) { query.taskMaxPriority(JsonUtil.getInt(json, MAX_PRIORITY)); } if (json.has(ASSIGNEE)) { query.taskAssignee(JsonUtil.getString(json, ASSIGNEE)); } if (json.has(ASSIGNEE_LIKE)) { query.taskAssigneeLike(JsonUtil.getString(json, ASSIGNEE_LIKE)); } if (json.has(INVOLVED_USER)) { query.taskInvolvedUser(JsonUtil.getString(json, INVOLVED_USER)); } if (json.has(OWNER)) { query.taskOwner(JsonUtil.getString(json, OWNER)); } if (json.has(ASSIGNED) && JsonUtil.getBoolean(json, ASSIGNED)) { query.taskAssigned(); } if (json.has(UNASSIGNED) && JsonUtil.getBoolean(json, UNASSIGNED)) { query.taskUnassigned(); } if (json.has(DELEGATION_STATE)) { query.taskDelegationState(Enum.Parse(typeof(DelegationState), JsonUtil.getString(json, DELEGATION_STATE))); } if (json.has(CANDIDATE_USER)) { query.taskCandidateUser(JsonUtil.getString(json, CANDIDATE_USER)); } if (json.has(CANDIDATE_GROUP)) { query.taskCandidateGroup(JsonUtil.getString(json, CANDIDATE_GROUP)); } if (json.has(CANDIDATE_GROUPS) && !json.has(CANDIDATE_USER) && !json.has(CANDIDATE_GROUP)) { query.taskCandidateGroupIn(getList(JsonUtil.getArray(json, CANDIDATE_GROUPS))); } if (json.has(WITH_CANDIDATE_GROUPS) && JsonUtil.getBoolean(json, WITH_CANDIDATE_GROUPS)) { query.withCandidateGroups(); } if (json.has(WITHOUT_CANDIDATE_GROUPS) && JsonUtil.getBoolean(json, WITHOUT_CANDIDATE_GROUPS)) { query.withoutCandidateGroups(); } if (json.has(WITH_CANDIDATE_USERS) && JsonUtil.getBoolean(json, WITH_CANDIDATE_USERS)) { query.withCandidateUsers(); } if (json.has(WITHOUT_CANDIDATE_USERS) && JsonUtil.getBoolean(json, WITHOUT_CANDIDATE_USERS)) { query.withoutCandidateUsers(); } if (json.has(INCLUDE_ASSIGNED_TASKS) && JsonUtil.getBoolean(json, INCLUDE_ASSIGNED_TASKS)) { query.includeAssignedTasksInternal(); } if (json.has(PROCESS_INSTANCE_ID)) { query.processInstanceId(JsonUtil.getString(json, PROCESS_INSTANCE_ID)); } if (json.has(EXECUTION_ID)) { query.executionId(JsonUtil.getString(json, EXECUTION_ID)); } if (json.has(ACTIVITY_INSTANCE_ID_IN)) { query.activityInstanceIdIn(getArray(JsonUtil.getArray(json, ACTIVITY_INSTANCE_ID_IN))); } if (json.has(CREATED)) { query.taskCreatedOn(new DateTime(JsonUtil.getLong(json, CREATED))); } if (json.has(CREATED_BEFORE)) { query.taskCreatedBefore(new DateTime(JsonUtil.getLong(json, CREATED_BEFORE))); } if (json.has(CREATED_AFTER)) { query.taskCreatedAfter(new DateTime(JsonUtil.getLong(json, CREATED_AFTER))); } if (json.has(KEY)) { query.taskDefinitionKey(JsonUtil.getString(json, KEY)); } if (json.has(KEYS)) { query.taskDefinitionKeyIn(getArray(JsonUtil.getArray(json, KEYS))); } if (json.has(KEY_LIKE)) { query.taskDefinitionKeyLike(JsonUtil.getString(json, KEY_LIKE)); } if (json.has(PARENT_TASK_ID)) { query.taskParentTaskId(JsonUtil.getString(json, PARENT_TASK_ID)); } if (json.has(PROCESS_DEFINITION_KEY)) { query.processDefinitionKey(JsonUtil.getString(json, PROCESS_DEFINITION_KEY)); } if (json.has(PROCESS_DEFINITION_KEYS)) { query.processDefinitionKeyIn(getArray(JsonUtil.getArray(json, PROCESS_DEFINITION_KEYS))); } if (json.has(PROCESS_DEFINITION_ID)) { query.processDefinitionId(JsonUtil.getString(json, PROCESS_DEFINITION_ID)); } if (json.has(PROCESS_DEFINITION_NAME)) { query.processDefinitionName(JsonUtil.getString(json, PROCESS_DEFINITION_NAME)); } if (json.has(PROCESS_DEFINITION_NAME_LIKE)) { query.processDefinitionNameLike(JsonUtil.getString(json, PROCESS_DEFINITION_NAME_LIKE)); } if (json.has(PROCESS_INSTANCE_BUSINESS_KEY)) { query.processInstanceBusinessKey(JsonUtil.getString(json, PROCESS_INSTANCE_BUSINESS_KEY)); } if (json.has(PROCESS_INSTANCE_BUSINESS_KEYS)) { query.processInstanceBusinessKeyIn(getArray(JsonUtil.getArray(json, PROCESS_INSTANCE_BUSINESS_KEYS))); } if (json.has(PROCESS_INSTANCE_BUSINESS_KEY_LIKE)) { query.processInstanceBusinessKeyLike(JsonUtil.getString(json, PROCESS_INSTANCE_BUSINESS_KEY_LIKE)); } if (json.has(TASK_VARIABLES)) { addVariables(query, JsonUtil.getArray(json, TASK_VARIABLES), true, false); } if (json.has(PROCESS_VARIABLES)) { addVariables(query, JsonUtil.getArray(json, PROCESS_VARIABLES), false, true); } if (json.has(CASE_INSTANCE_VARIABLES)) { addVariables(query, JsonUtil.getArray(json, CASE_INSTANCE_VARIABLES), false, false); } if (json.has(DUE)) { query.dueDate(new DateTime(JsonUtil.getLong(json, DUE))); } if (json.has(DUE_BEFORE)) { query.dueBefore(new DateTime(JsonUtil.getLong(json, DUE_BEFORE))); } if (json.has(DUE_AFTER)) { query.dueAfter(new DateTime(JsonUtil.getLong(json, DUE_AFTER))); } if (json.has(FOLLOW_UP)) { query.followUpDate(new DateTime(JsonUtil.getLong(json, FOLLOW_UP))); } if (json.has(FOLLOW_UP_BEFORE)) { query.followUpBefore(new DateTime(JsonUtil.getLong(json, FOLLOW_UP_BEFORE))); } if (json.has(FOLLOW_UP_AFTER)) { query.followUpAfter(new DateTime(JsonUtil.getLong(json, FOLLOW_UP_AFTER))); } if (json.has(FOLLOW_UP_NULL_ACCEPTED)) { query.FollowUpNullAccepted = JsonUtil.getBoolean(json, FOLLOW_UP_NULL_ACCEPTED); } if (json.has(EXCLUDE_SUBTASKS) && JsonUtil.getBoolean(json, EXCLUDE_SUBTASKS)) { query.excludeSubtasks(); } if (json.has(SUSPENDED) && JsonUtil.getBoolean(json, SUSPENDED)) { query.suspended(); } if (json.has(ACTIVE) && JsonUtil.getBoolean(json, ACTIVE)) { query.active(); } if (json.has(CASE_DEFINITION_KEY)) { query.caseDefinitionKey(JsonUtil.getString(json, CASE_DEFINITION_KEY)); } if (json.has(CASE_DEFINITION_ID)) { query.caseDefinitionId(JsonUtil.getString(json, CASE_DEFINITION_ID)); } if (json.has(CASE_DEFINITION_NAME)) { query.caseDefinitionName(JsonUtil.getString(json, CASE_DEFINITION_NAME)); } if (json.has(CASE_DEFINITION_NAME_LIKE)) { query.caseDefinitionNameLike(JsonUtil.getString(json, CASE_DEFINITION_NAME_LIKE)); } if (json.has(CASE_INSTANCE_ID)) { query.caseInstanceId(JsonUtil.getString(json, CASE_INSTANCE_ID)); } if (json.has(CASE_INSTANCE_BUSINESS_KEY)) { query.caseInstanceBusinessKey(JsonUtil.getString(json, CASE_INSTANCE_BUSINESS_KEY)); } if (json.has(CASE_INSTANCE_BUSINESS_KEY_LIKE)) { query.caseInstanceBusinessKeyLike(JsonUtil.getString(json, CASE_INSTANCE_BUSINESS_KEY_LIKE)); } if (json.has(CASE_EXECUTION_ID)) { query.caseExecutionId(JsonUtil.getString(json, CASE_EXECUTION_ID)); } if (json.has(TENANT_IDS)) { query.tenantIdIn(getArray(JsonUtil.getArray(json, TENANT_IDS))); } if (json.has(WITHOUT_TENANT_ID)) { query.withoutTenantId(); } if (json.has(ORDER_BY)) { IList <QueryOrderingProperty> orderingProperties = JsonLegacyQueryOrderingPropertyConverter.INSTANCE.fromOrderByString(JsonUtil.getString(json, ORDER_BY)); query.OrderingProperties = orderingProperties; } if (json.has(ORDERING_PROPERTIES)) { JsonArray jsonArray = JsonUtil.getArray(json, ORDERING_PROPERTIES); query.OrderingProperties = JsonQueryOrderingPropertyConverter.ARRAY_CONVERTER.toObject(jsonArray); } // expressions foreach (KeyValuePair <string, JsonElement> entry in json.entrySet()) { string key = entry.Key; if (key.EndsWith("Expression", StringComparison.Ordinal)) { string expression = JsonUtil.getString(json, key); query.addExpression(key.Substring(0, key.Length - "Expression".Length), expression); } } return(query); }
public void execute(ProcessEngine engine, string scenarioName) { string testString = "test"; int? testInteger = 1; DelegationState testDelegationState = DelegationState.PENDING; DateTime testDate = new DateTime(); string[] testActivityInstances = new string[] { "a", "b", "c" }; string[] testKeys = new string[] { "d", "e" }; IList <string> testCandidateGroups = new List <string>(); string[] variableNames = new string[] { "a", "b", "c", "d", "e", "f" }; object[] variableValues = new object[] { 1, 2, "3", "4", 5, 6 }; testCandidateGroups.Add("group"); testCandidateGroups.Add("anotherGroup"); TaskQueryImpl query = new TaskQueryImpl(); query.taskId(testString); query.taskName(testString); query.taskNameNotEqual(testString); query.taskNameLike(testString); query.taskNameNotLike(testString); query.taskDescription(testString); query.taskDescriptionLike(testString); query.taskPriority(testInteger); query.taskMinPriority(testInteger); query.taskMaxPriority(testInteger); query.taskAssignee(testString); query.taskAssigneeExpression(testString); query.taskAssigneeLike(testString); query.taskAssigneeLikeExpression(testString); query.taskInvolvedUser(testString); query.taskInvolvedUserExpression(testString); query.taskOwner(testString); query.taskOwnerExpression(testString); query.taskUnassigned(); query.taskAssigned(); query.taskDelegationState(testDelegationState); query.taskCandidateGroupIn(testCandidateGroups); query.taskCandidateGroupInExpression(testString); query.withCandidateGroups(); query.withoutCandidateGroups(); query.withCandidateUsers(); query.withoutCandidateUsers(); query.processInstanceId(testString); query.executionId(testString); query.activityInstanceIdIn(testActivityInstances); query.taskCreatedOn(testDate); query.taskCreatedOnExpression(testString); query.taskCreatedBefore(testDate); query.taskCreatedBeforeExpression(testString); query.taskCreatedAfter(testDate); query.taskCreatedAfterExpression(testString); query.taskDefinitionKey(testString); query.taskDefinitionKeyIn(testKeys); query.taskDefinitionKeyLike(testString); query.processDefinitionKey(testString); query.processDefinitionKeyIn(testKeys); query.processDefinitionId(testString); query.processDefinitionName(testString); query.processDefinitionNameLike(testString); query.processInstanceBusinessKey(testString); query.processInstanceBusinessKeyExpression(testString); query.processInstanceBusinessKeyIn(testKeys); query.processInstanceBusinessKeyLike(testString); query.processInstanceBusinessKeyLikeExpression(testString); // variables query.taskVariableValueEquals(variableNames[0], variableValues[0]); query.taskVariableValueGreaterThanOrEquals(variableNames[1], variableValues[1]); query.processVariableValueLessThan(variableNames[2], variableValues[2]); query.processVariableValueLike(variableNames[3], (string)variableValues[3]); query.caseInstanceVariableValueNotEquals(variableNames[4], variableValues[4]); query.caseInstanceVariableValueLessThanOrEquals(variableNames[5], variableValues[5]); query.dueDate(testDate); query.dueDateExpression(testString); query.dueBefore(testDate); query.dueBeforeExpression(testString); query.dueAfter(testDate); query.dueAfterExpression(testString); query.followUpDate(testDate); query.followUpDateExpression(testString); query.followUpBefore(testDate); query.followUpBeforeExpression(testString); query.followUpAfter(testDate); query.followUpAfterExpression(testString); query.excludeSubtasks(); query.suspended(); query.caseDefinitionKey(testString); query.caseDefinitionId(testString); query.caseDefinitionName(testString); query.caseDefinitionNameLike(testString); query.caseInstanceId(testString); query.caseInstanceBusinessKey(testString); query.caseInstanceBusinessKeyLike(testString); query.caseExecutionId(testString); query.orderByExecutionId().desc(); query.orderByDueDate().asc(); query.orderByProcessVariable("var", ValueType.STRING).desc(); // save filter Filter filter = engine.FilterService.newTaskFilter("filter"); filter.Query = query; engine.FilterService.saveFilter(filter); }