Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
            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);
            }