Esempio n. 1
0
        public virtual void testQueryOverrideExpression()
        {
            string queryString          = "query";
            string expressionString     = "expression";
            string testStringExpression = "${'" + expressionString + "'}";

            DateTime queryDate          = (new DateTime(now())).minusYears(1).toDate();
            string   testDateExpression = "${now()}";

            TaskQueryImpl taskQuery = (TaskQueryImpl)taskQuery().taskAssigneeExpression(testStringExpression).taskAssignee(queryString).taskAssigneeLikeExpression(testStringExpression).taskAssigneeLike(queryString).taskOwnerExpression(expressionString).taskOwner(queryString).taskInvolvedUserExpression(expressionString).taskInvolvedUser(queryString).taskCreatedBeforeExpression(testDateExpression).taskCreatedBefore(queryDate).taskCreatedOnExpression(testDateExpression).taskCreatedOn(queryDate).taskCreatedAfterExpression(testDateExpression).taskCreatedAfter(queryDate).dueBeforeExpression(testDateExpression).dueBefore(queryDate).dueDateExpression(testDateExpression).dueDate(queryDate).dueAfterExpression(testDateExpression).dueAfter(queryDate).followUpBeforeExpression(testDateExpression).followUpBefore(queryDate).followUpDateExpression(testDateExpression).followUpDate(queryDate).followUpAfterExpression(testDateExpression).followUpAfter(queryDate);

            // execute query so expression will be evaluated
            taskQuery.count();

            assertEquals(queryString, taskQuery.Assignee);
            assertEquals(queryString, taskQuery.AssigneeLike);
            assertEquals(queryString, taskQuery.Owner);
            assertEquals(queryString, taskQuery.InvolvedUser);
            assertTrue(taskQuery.CreateTimeBefore.Equals(queryDate));
            assertTrue(taskQuery.CreateTime.Equals(queryDate));
            assertTrue(taskQuery.CreateTimeAfter.Equals(queryDate));
            assertTrue(taskQuery.DueBefore.Equals(queryDate));
            assertTrue(taskQuery.DueDate.Equals(queryDate));
            assertTrue(taskQuery.DueAfter.Equals(queryDate));
            assertTrue(taskQuery.FollowUpBefore.Equals(queryDate));
            assertTrue(taskQuery.FollowUpDate.Equals(queryDate));
            assertTrue(taskQuery.FollowUpAfter.Equals(queryDate));

            // candidates has to be tested separately cause they have to be set exclusively

            taskQuery = (TaskQueryImpl)taskQuery().taskCandidateGroupExpression(testStringExpression).taskCandidateGroup(queryString);

            // execute query so expression will be evaluated
            taskQuery.count();

            assertEquals(queryString, taskQuery.CandidateGroup);

            taskQuery = (TaskQueryImpl)taskQuery().taskCandidateUserExpression(testStringExpression).taskCandidateUser(queryString);

            // execute query so expression will be evaluated
            taskQuery.count();

            assertEquals(queryString, taskQuery.CandidateUser);

            CurrentUser = user;
            IList <string> queryList            = Arrays.asList("query");
            string         testGroupsExpression = "${currentUserGroups()}";

            taskQuery = (TaskQueryImpl)taskQuery().taskCandidateGroupInExpression(testGroupsExpression).taskCandidateGroupIn(queryList);

            // execute query so expression will be evaluated
            taskQuery.count();

            assertEquals(1, taskQuery.CandidateGroups.Count);
        }
Esempio n. 2
0
        public virtual void testCreateFilterWithTenantIdCriteria()
        {
            TaskQuery query = taskService.createTaskQuery().tenantIdIn(TENANT_IDS);

            filterId = createFilter(query);

            Filter        savedFilter = filterService.getFilter(filterId);
            TaskQueryImpl savedQuery  = savedFilter.Query;

            assertThat(savedQuery.TenantIds, @is(TENANT_IDS));
        }
Esempio n. 3
0
 protected internal virtual void addVariables(TaskQueryImpl query, JsonArray variables, bool isTaskVariable, bool isProcessVariable)
 {
     foreach (JsonElement variable in variables)
     {
         JsonObject    variableObj = JsonUtil.getObject(variable);
         string        name        = JsonUtil.getString(variableObj, NAME);
         object        rawValue    = JsonUtil.getRawObject(variableObj, "value");
         QueryOperator @operator   = Enum.Parse(typeof(QueryOperator), JsonUtil.getString(variableObj, "operator"));
         query.addVariable(name, rawValue, @operator, isTaskVariable, isProcessVariable);
     }
 }
Esempio n. 4
0
        public virtual void testCreateFilterWithNoTenantIdCriteria()
        {
            TaskQuery query = taskService.createTaskQuery().withoutTenantId();

            filterId = createFilter(query);

            Filter        savedFilter = filterService.getFilter(filterId);
            TaskQueryImpl savedQuery  = savedFilter.Query;

            assertThat(savedQuery.TenantIdSet, @is(true));
            assertThat(savedQuery.TenantIds, @is(nullValue()));
        }
Esempio n. 5
0
        public virtual void testExtendFilter()
        {
            TaskQuery extendingQuery = taskService.createTaskQuery().taskName("newName").taskOwner("newOwner");
            Filter    newFilter      = filter.extend(extendingQuery);

            assertNull(newFilter.Id);

            TaskQueryImpl filterQuery = newFilter.Query;

            assertEquals("newName", filterQuery.Name);
            assertEquals("newOwner", filterQuery.Owner);
        }
Esempio n. 6
0
        // task query //////////////////////////////////////////////

        public virtual void configureTaskQuery(TaskQueryImpl query)
        {
            configureQuery(query);

            if (query.AuthCheck.AuthorizationCheckEnabled)
            {
                // necessary authorization check when the task is part of
                // a running process instance

                CompositePermissionCheck permissionCheck = (new PermissionCheckBuilder()).disjunctive().atomicCheck(TASK, "RES.ID_", READ).atomicCheck(PROCESS_DEFINITION, "PROCDEF.KEY_", READ_TASK).build();
                addPermissionCheck(query.AuthCheck, permissionCheck);
            }
        }
Esempio n. 7
0
        /// <summary>
        ///
        /// </summary>
        public virtual IPage <TaskModel> GetAllTasks(TaskQuery taskQuery)
        {
            TaskQueryImpl query = taskService.CreateTaskQuery() as TaskQueryImpl;

            FastCopy.Copy <TaskQuery, TaskQueryImpl>(taskQuery, query);

            sortApplier.ApplySort(query, taskQuery.Pageable);

            return(pageRetriever.LoadPage(taskService as ServiceImpl, query, taskQuery.Pageable, taskConverter, (q, firstResult, pageSize) =>
            {
                return new GetProcessInstanceTasksCmd(q, firstResult, pageSize);
            }));
        }
Esempio n. 8
0
        /// <summary>
        /// 读取分页记录
        /// </summary>
        /// <param name="taskService">任务仓储服务</param>
        /// <param name="pageableRepositoryService">分页仓储服务</param>
        /// <param name="qo">查询对象</param>
        /// <returns></returns>
        public IPage <TaskModel> LoadPage(ITaskService taskService,
                                          PageableTaskRepositoryService pageableRepositoryService,
                                          TaskQuery qo)
        {
            TaskQueryImpl query = taskService.CreateTaskQuery() as TaskQueryImpl;

            FastCopy.Copy <TaskQuery, TaskQueryImpl>(qo, query);

            pageableRepositoryService.SortApplier.ApplySort(query, qo.Pageable);

            IPage <TaskModel> defs = pageableRepositoryService.PageRetriever.LoadPage(query, qo.Pageable, pageableRepositoryService.TaskConverter);

            return(defs);
        }
        public virtual IList <ITask> FindTasksAndVariablesByQueryCriteria(ITaskQuery taskQuery)
        {
            const string  query        = "selectTaskWithVariablesByQueryCriteria";
            TaskQueryImpl taskQueyImpl = taskQuery as TaskQueryImpl;

            // paging doesn't work for combining task instances and variables due to
            // an outer join, so doing it in-memory
            if (taskQueyImpl.FirstResult < 0 || taskQueyImpl.MaxResults <= 0)
            {
                return(new List <ITask>());
            }

            int firstResult = taskQueyImpl.FirstResult;
            int maxResults  = taskQueyImpl.MaxResults;

            // setting max results, limit to 20000 results for performance reasons
            if (taskQueyImpl.TaskVariablesLimit != null)
            {
                taskQueyImpl.MaxResults = taskQueyImpl.TaskVariablesLimit.GetValueOrDefault();
            }
            else
            {
                taskQueyImpl.MaxResults = ProcessEngineConfiguration.TaskQueryLimit;
            }
            taskQueyImpl.FirstResult = 0;

            IList <ITask> instanceList = DbSqlSession.SelectListWithRawParameterWithoutFilter <TaskEntityImpl, ITask>(query, taskQueyImpl, taskQueyImpl.FirstResult, taskQueyImpl.MaxResults);

            if (instanceList != null && instanceList.Count > 0)
            {
                if (firstResult > 0)
                {
                    if (firstResult <= instanceList.Count)
                    {
                        int toIndex = firstResult + Math.Min(maxResults, instanceList.Count - firstResult);
                        return(instanceList.Skip(firstResult).Take(toIndex).ToList());
                    }
                    else
                    {
                        return(new List <ITask>());
                    }
                }
                else
                {
                    int toIndex = Math.Min(maxResults, instanceList.Count);
                    return(instanceList.Skip(0).Take(toIndex).ToList());
                }
            }
            return(new List <ITask>());
        }
Esempio n. 10
0
 protected internal virtual void addTenantIdFields(JsonObject jsonObject, TaskQueryImpl query)
 {
     if (query.TenantIdSet)
     {
         if (query.TenantIds != null)
         {
             JsonUtil.addArrayField(jsonObject, TENANT_IDS, query.TenantIds);
         }
         else
         {
             JsonUtil.addField(jsonObject, WITHOUT_TENANT_ID, true);
         }
     }
 }
Esempio n. 11
0
//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes:
//ORIGINAL LINE: @Test public void shouldReturnTasksByExtendingQuery_OrInExtendedQuery()
        public virtual void shouldReturnTasksByExtendingQuery_OrInExtendedQuery()
        {
            // given
            TaskQuery extendedQuery = taskService.createTaskQuery().or().taskName("aTaskName").endOr().or().taskNameLike("anotherTaskName").endOr();

            TaskQuery extendingQuery = taskService.createTaskQuery().taskCandidateGroup("aCandidateGroup");

            // when
            TaskQueryImpl result = (TaskQueryImpl)((TaskQueryImpl)extendedQuery).extend(extendingQuery);

            // then
            assertEquals("aTaskName", result.Queries[1].Name);
            assertEquals("anotherTaskName", result.Queries[2].NameLike);
            assertEquals("aCandidateGroup", result.CandidateGroup);
        }
Esempio n. 12
0
            public Void execute(CommandContext commandContext)
            {
                AuthorizationManager authorizationManager = outerInstance.spyOnSession(commandContext, typeof(AuthorizationManager));

                TaskQueryImpl      taskQuery = (TaskQueryImpl)spy(outerInstance.processEngine.TaskService.createTaskQuery());
                AuthorizationCheck authCheck = spy(new AuthorizationCheck());

                when(taskQuery.AuthCheck).thenReturn(authCheck);

                taskQuery.list();

                verify(authorizationManager, atLeastOnce()).filterAuthenticatedGroupIds(eq(testGroupIds));
                verify(authCheck, atLeastOnce()).AuthGroupIds = (IList <string>)argThat(containsInAnyOrder(testGroupIds.ToArray()));

                return(null);
            }
Esempio n. 13
0
            public Void execute(CommandContext commandContext)
            {
                AuthorizationManager authorizationManager = outerInstance.spyOnSession(commandContext, typeof(AuthorizationManager));

                TaskQueryImpl      taskQuery = (TaskQueryImpl)spy(outerInstance.processEngine.TaskService.createTaskQuery());
                AuthorizationCheck authCheck = spy(new AuthorizationCheck());

                when(taskQuery.AuthCheck).thenReturn(authCheck);

                taskQuery.list();

                verify(authorizationManager, atLeastOnce()).filterAuthenticatedGroupIds(eq(testGroupIds));
                verify(authCheck).AuthGroupIds = eq(System.Linq.Enumerable.Empty <string>());

                return(null);
            }
Esempio n. 14
0
 protected internal virtual void configureQuery(TaskQueryImpl query)
 {
     AuthorizationManager.configureTaskQuery(query);
     TenantManager.configureQuery(query);
 }
Esempio n. 15
0
        public virtual void testTaskFilter()
        {
            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>();

            testCandidateGroups.Add("group");
            testCandidateGroups.Add("anotherGroup");

            string[] variableNames  = new string[] { "a", "b", "c", "d", "e", "f" };
            object[] variableValues = new object[] { 1, 2, "3", "4", 5, 6 };

            QueryOperator[] variableOperators = new QueryOperator[] { QueryOperator.EQUALS, QueryOperator.GREATER_THAN_OR_EQUAL, QueryOperator.LESS_THAN, QueryOperator.LIKE, QueryOperator.NOT_EQUALS, QueryOperator.LESS_THAN_OR_EQUAL };
            bool[]          isTaskVariable    = new bool[] { true, true, false, false, false, false };
            bool[]          isProcessVariable = new bool[] { false, false, true, true, false, false };

            TaskQueryImpl expectedOrderingPropertiesQuery = new TaskQueryImpl();

            expectedOrderingPropertiesQuery.orderByExecutionId().desc();
            expectedOrderingPropertiesQuery.orderByDueDate().asc();
            expectedOrderingPropertiesQuery.orderByProcessVariable("var", ValueType.STRING).desc();

            IList <QueryOrderingProperty> expectedOrderingProperties = expectedOrderingPropertiesQuery.OrderingProperties;

            Filter filter = engineRule.FilterService.createTaskFilterQuery().filterName("filter").singleResult();

            TaskQueryImpl query = filter.Query;

            assertEquals(testString, query.TaskId);
            assertEquals(testString, query.Name);
            assertEquals(testString, query.NameNotEqual);
            assertEquals(testString, query.NameNotLike);
            assertEquals(testString, query.NameLike);
            assertEquals(testString, query.Description);
            assertEquals(testString, query.DescriptionLike);
            assertEquals(testInteger, query.Priority);
            assertEquals(testInteger, query.MinPriority);
            assertEquals(testInteger, query.MaxPriority);
            assertEquals(testString, query.Assignee);
            assertEquals(testString, query.Expressions["taskAssignee"]);
            assertEquals(testString, query.AssigneeLike);
            assertEquals(testString, query.Expressions["taskAssigneeLike"]);
            assertEquals(testString, query.InvolvedUser);
            assertEquals(testString, query.Expressions["taskInvolvedUser"]);
            assertEquals(testString, query.Owner);
            assertEquals(testString, query.Expressions["taskOwner"]);
            assertTrue(query.Unassigned);
            assertTrue(query.Assigned);
            assertEquals(testDelegationState, query.DelegationState);
            assertEquals(testCandidateGroups, query.CandidateGroups);
            assertTrue(query.WithCandidateGroups);
            assertTrue(query.WithoutCandidateGroups);
            assertTrue(query.WithCandidateUsers);
            assertTrue(query.WithoutCandidateUsers);
            assertEquals(testString, query.Expressions["taskCandidateGroupIn"]);
            assertEquals(testString, query.ProcessInstanceId);
            assertEquals(testString, query.ExecutionId);
            assertEquals(testActivityInstances.Length, query.ActivityInstanceIdIn.Length);
            for (int i = 0; i < query.ActivityInstanceIdIn.Length; i++)
            {
                assertEquals(testActivityInstances[i], query.ActivityInstanceIdIn[i]);
            }
            assertEquals(testDate, query.CreateTime);
            assertEquals(testString, query.Expressions["taskCreatedOn"]);
            assertEquals(testDate, query.CreateTimeBefore);
            assertEquals(testString, query.Expressions["taskCreatedBefore"]);
            assertEquals(testDate, query.CreateTimeAfter);
            assertEquals(testString, query.Expressions["taskCreatedAfter"]);
            assertEquals(testString, query.Key);
            assertEquals(testKeys.Length, query.Keys.Length);
            for (int i = 0; i < query.Keys.Length; i++)
            {
                assertEquals(testKeys[i], query.Keys[i]);
            }
            assertEquals(testString, query.KeyLike);
            assertEquals(testString, query.ProcessDefinitionKey);
            for (int i = 0; i < query.ProcessDefinitionKeys.Length; i++)
            {
                assertEquals(testKeys[i], query.ProcessDefinitionKeys[i]);
            }
            assertEquals(testString, query.ProcessDefinitionId);
            assertEquals(testString, query.ProcessDefinitionName);
            assertEquals(testString, query.ProcessDefinitionNameLike);
            assertEquals(testString, query.ProcessInstanceBusinessKey);
            assertEquals(testString, query.Expressions["processInstanceBusinessKey"]);
            for (int i = 0; i < query.ProcessInstanceBusinessKeys.Length; i++)
            {
                assertEquals(testKeys[i], query.ProcessInstanceBusinessKeys[i]);
            }
            assertEquals(testString, query.ProcessInstanceBusinessKeyLike);
            assertEquals(testString, query.Expressions["processInstanceBusinessKeyLike"]);

            // variables
            IList <TaskQueryVariableValue> variables = query.Variables;

            for (int i = 0; i < variables.Count; i++)
            {
                TaskQueryVariableValue variable = variables[i];
                assertEquals(variableNames[i], variable.Name);
                assertEquals(variableValues[i], variable.Value);
                assertEquals(variableOperators[i], variable.Operator);
                assertEquals(isTaskVariable[i], variable.Local);
                assertEquals(isProcessVariable[i], variable.ProcessInstanceVariable);
            }

            assertEquals(testDate, query.DueDate);
            assertEquals(testString, query.Expressions["dueDate"]);
            assertEquals(testDate, query.DueBefore);
            assertEquals(testString, query.Expressions["dueBefore"]);
            assertEquals(testDate, query.DueAfter);
            assertEquals(testString, query.Expressions["dueAfter"]);
            assertEquals(testDate, query.FollowUpDate);
            assertEquals(testString, query.Expressions["followUpDate"]);
            assertEquals(testDate, query.FollowUpBefore);
            assertEquals(testString, query.Expressions["followUpBefore"]);
            assertEquals(testDate, query.FollowUpAfter);
            assertEquals(testString, query.Expressions["followUpAfter"]);
            assertTrue(query.ExcludeSubtasks);
            assertEquals(org.camunda.bpm.engine.impl.persistence.entity.SuspensionState_Fields.SUSPENDED, query.SuspensionState);
            assertEquals(testString, query.CaseDefinitionKey);
            assertEquals(testString, query.CaseDefinitionId);
            assertEquals(testString, query.CaseDefinitionName);
            assertEquals(testString, query.CaseDefinitionNameLike);
            assertEquals(testString, query.CaseInstanceId);
            assertEquals(testString, query.CaseInstanceBusinessKey);
            assertEquals(testString, query.CaseInstanceBusinessKeyLike);
            assertEquals(testString, query.CaseExecutionId);

            // ordering
            verifyOrderingProperties(expectedOrderingProperties, query.OrderingProperties);
        }
Esempio n. 16
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);
            }
Esempio n. 17
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);
        }
Esempio n. 18
0
        public virtual JsonObject toJsonObject(TaskQuery taskQuery, bool isOrQueryActive)
        {
            JsonObject    json  = JsonUtil.createObject();
            TaskQueryImpl query = (TaskQueryImpl)taskQuery;

            JsonUtil.addField(json, TASK_ID, query.TaskId);
            JsonUtil.addField(json, NAME, query.Name);
            JsonUtil.addField(json, NAME_NOT_EQUAL, query.NameNotEqual);
            JsonUtil.addField(json, NAME_LIKE, query.NameLike);
            JsonUtil.addField(json, NAME_NOT_LIKE, query.NameNotLike);
            JsonUtil.addField(json, DESCRIPTION, query.Description);
            JsonUtil.addField(json, DESCRIPTION_LIKE, query.DescriptionLike);
            JsonUtil.addField(json, PRIORITY, query.Priority);
            JsonUtil.addField(json, MIN_PRIORITY, query.MinPriority);
            JsonUtil.addField(json, MAX_PRIORITY, query.MaxPriority);
            JsonUtil.addField(json, ASSIGNEE, query.Assignee);
            JsonUtil.addField(json, ASSIGNEE_LIKE, query.AssigneeLike);
            JsonUtil.addField(json, INVOLVED_USER, query.InvolvedUser);
            JsonUtil.addField(json, OWNER, query.Owner);
            JsonUtil.addDefaultField(json, UNASSIGNED, false, query.Unassigned);
            JsonUtil.addDefaultField(json, ASSIGNED, false, query.Assigned);
            JsonUtil.addField(json, DELEGATION_STATE, query.DelegationStateString);
            JsonUtil.addField(json, CANDIDATE_USER, query.CandidateUser);
            JsonUtil.addField(json, CANDIDATE_GROUP, query.CandidateGroup);
            JsonUtil.addListField(json, CANDIDATE_GROUPS, query.CandidateGroupsInternal);
            JsonUtil.addDefaultField(json, WITH_CANDIDATE_GROUPS, false, query.WithCandidateGroups);
            JsonUtil.addDefaultField(json, WITHOUT_CANDIDATE_GROUPS, false, query.WithoutCandidateGroups);
            JsonUtil.addDefaultField(json, WITH_CANDIDATE_USERS, false, query.WithCandidateUsers);
            JsonUtil.addDefaultField(json, WITHOUT_CANDIDATE_USERS, false, query.WithoutCandidateUsers);
            JsonUtil.addField(json, INCLUDE_ASSIGNED_TASKS, query.IncludeAssignedTasksInternal);
            JsonUtil.addField(json, PROCESS_INSTANCE_ID, query.ProcessInstanceId);
            JsonUtil.addField(json, EXECUTION_ID, query.ExecutionId);
            JsonUtil.addArrayField(json, ACTIVITY_INSTANCE_ID_IN, query.ActivityInstanceIdIn);
            JsonUtil.addDateField(json, CREATED, query.CreateTime);
            JsonUtil.addDateField(json, CREATED_BEFORE, query.CreateTimeBefore);
            JsonUtil.addDateField(json, CREATED_AFTER, query.CreateTimeAfter);
            JsonUtil.addField(json, KEY, query.Key);
            JsonUtil.addArrayField(json, KEYS, query.Keys);
            JsonUtil.addField(json, KEY_LIKE, query.KeyLike);
            JsonUtil.addField(json, PARENT_TASK_ID, query.ParentTaskId);
            JsonUtil.addField(json, PROCESS_DEFINITION_KEY, query.ProcessDefinitionKey);
            JsonUtil.addArrayField(json, PROCESS_DEFINITION_KEYS, query.ProcessDefinitionKeys);
            JsonUtil.addField(json, PROCESS_DEFINITION_ID, query.ProcessDefinitionId);
            JsonUtil.addField(json, PROCESS_DEFINITION_NAME, query.ProcessDefinitionName);
            JsonUtil.addField(json, PROCESS_DEFINITION_NAME_LIKE, query.ProcessDefinitionNameLike);
            JsonUtil.addField(json, PROCESS_INSTANCE_BUSINESS_KEY, query.ProcessInstanceBusinessKey);
            JsonUtil.addArrayField(json, PROCESS_INSTANCE_BUSINESS_KEYS, query.ProcessInstanceBusinessKeys);
            JsonUtil.addField(json, PROCESS_INSTANCE_BUSINESS_KEY_LIKE, query.ProcessInstanceBusinessKeyLike);
            addVariablesFields(json, query.Variables);
            JsonUtil.addDateField(json, DUE, query.DueDate);
            JsonUtil.addDateField(json, DUE_BEFORE, query.DueBefore);
            JsonUtil.addDateField(json, DUE_AFTER, query.DueAfter);
            JsonUtil.addDateField(json, FOLLOW_UP, query.FollowUpDate);
            JsonUtil.addDateField(json, FOLLOW_UP_BEFORE, query.FollowUpBefore);
            JsonUtil.addDefaultField(json, FOLLOW_UP_NULL_ACCEPTED, false, query.FollowUpNullAccepted);
            JsonUtil.addDateField(json, FOLLOW_UP_AFTER, query.FollowUpAfter);
            JsonUtil.addDefaultField(json, EXCLUDE_SUBTASKS, false, query.ExcludeSubtasks);
            addSuspensionStateField(json, query.SuspensionState);
            JsonUtil.addField(json, CASE_DEFINITION_KEY, query.CaseDefinitionKey);
            JsonUtil.addField(json, CASE_DEFINITION_ID, query.CaseDefinitionId);
            JsonUtil.addField(json, CASE_DEFINITION_NAME, query.CaseDefinitionName);
            JsonUtil.addField(json, CASE_DEFINITION_NAME_LIKE, query.CaseDefinitionNameLike);
            JsonUtil.addField(json, CASE_INSTANCE_ID, query.CaseInstanceId);
            JsonUtil.addField(json, CASE_INSTANCE_BUSINESS_KEY, query.CaseInstanceBusinessKey);
            JsonUtil.addField(json, CASE_INSTANCE_BUSINESS_KEY_LIKE, query.CaseInstanceBusinessKeyLike);
            JsonUtil.addField(json, CASE_EXECUTION_ID, query.CaseExecutionId);
            addTenantIdFields(json, query);

            if (query.Queries.Count > 1 && !isOrQueryActive)
            {
                JsonArray orQueries = JsonUtil.createArray();

                foreach (TaskQueryImpl orQuery in query.Queries)
                {
                    if (orQuery != null && orQuery.OrQueryActive)
                    {
                        orQueries.add(toJsonObject(orQuery, true));
                    }
                }

                JsonUtil.addField(json, OR_QUERIES, orQueries);
            }

            if (query.OrderingProperties != null && !query.OrderingProperties.Empty)
            {
                JsonUtil.addField(json, ORDERING_PROPERTIES, JsonQueryOrderingPropertyConverter.ARRAY_CONVERTER.toJsonArray(query.OrderingProperties));
            }


            // expressions
            foreach (KeyValuePair <string, string> expressionEntry in query.Expressions.SetOfKeyValuePairs())
            {
                JsonUtil.addField(json, expressionEntry.Key + "Expression", expressionEntry.Value);
            }

            return(json);
        }
Esempio n. 19
0
 public virtual IList <Task> findTasksByQueryCriteria(TaskQueryImpl taskQuery, Page page)
 {
     taskQuery.FirstResult = page.FirstResult;
     taskQuery.MaxResults  = page.MaxResults;
     return(findTasksByQueryCriteria(taskQuery));
 }
Esempio n. 20
0
//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes:
//ORIGINAL LINE: @SuppressWarnings("unchecked") public java.util.List<org.camunda.bpm.engine.task.Task> findTasksByQueryCriteria(org.camunda.bpm.engine.impl.TaskQueryImpl taskQuery)
        public virtual IList <Task> findTasksByQueryCriteria(TaskQueryImpl taskQuery)
        {
            configureQuery(taskQuery);
            return(DbEntityManager.selectList("selectTaskByQueryCriteria", taskQuery));
        }
Esempio n. 21
0
 public virtual long findTaskCountByQueryCriteria(TaskQueryImpl taskQuery)
 {
     configureQuery(taskQuery);
     return((long?)DbEntityManager.selectOne("selectTaskCountByQueryCriteria", taskQuery).Value);
 }