Beispiel #1
0
//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes:
//ORIGINAL LINE: @Test public void throwEndSignalForNonTenant()
        public virtual void throwEndSignalForNonTenant()
        {
            testRule.deploy(SIGNAL_START_PROCESS, SIGNAL_CATCH_PROCESS, SIGNAL_END_THROW_PROCESS);
            testRule.deployForTenant(TENANT_ONE, SIGNAL_START_PROCESS, SIGNAL_CATCH_PROCESS);

            engineRule.RuntimeService.createProcessInstanceByKey("signalCatch").processDefinitionWithoutTenantId().execute();
            engineRule.RuntimeService.createProcessInstanceByKey("signalCatch").processDefinitionTenantId(TENANT_ONE).execute();

            engineRule.RuntimeService.startProcessInstanceByKey("signalThrow");

            TaskQuery query = engineRule.TaskService.createTaskQuery();

            assertThat(query.withoutTenantId().count(), @is(2L));
            assertThat(query.tenantIdIn(TENANT_ONE).count(), @is(0L));
        }
Beispiel #2
0
//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes:
//ORIGINAL LINE: @Test public void sendSignalToIntermediateCatchEventForNonTenant()
        public virtual void sendSignalToIntermediateCatchEventForNonTenant()
        {
            testRule.deploy(SIGNAL_CATCH_PROCESS);
            testRule.deployForTenant(TENANT_ONE, SIGNAL_CATCH_PROCESS);

            engineRule.RuntimeService.createProcessInstanceByKey("signalCatch").processDefinitionWithoutTenantId().execute();
            engineRule.RuntimeService.createProcessInstanceByKey("signalCatch").processDefinitionTenantId(TENANT_ONE).execute();

            engineRule.RuntimeService.createSignalEvent("signal").withoutTenantId().send();

            TaskQuery query = engineRule.TaskService.createTaskQuery();

            assertThat(query.count(), @is(1L));
            assertThat(query.singleResult().TenantId, @is(nullValue()));
        }
Beispiel #3
0
        public virtual void testCannotExecuteStoredFilter()
        {
//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final':
//ORIGINAL LINE: final org.camunda.bpm.engine.task.TaskQuery filterQuery = taskService.createTaskQuery().dueAfterExpression(STATE_MANIPULATING_EXPRESSION);
            TaskQuery filterQuery = taskService.createTaskQuery().dueAfterExpression(STATE_MANIPULATING_EXPRESSION);

            // store a filter bypassing validation
            // the API way of doing this would be by reconfiguring the engine
            string filterId = processEngineConfiguration.CommandExecutorTxRequired.execute(new CommandAnonymousInnerClass(this, filterQuery));

            extendFilterAndValidateFailingQuery(filterId, null);

            // cleanup
            filterService.deleteFilter(filterId);
        }
Beispiel #4
0
//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes:
//ORIGINAL LINE: @Test public void correlateMessageToIntermediateCatchEventWithoutTenantId()
        public virtual void correlateMessageToIntermediateCatchEventWithoutTenantId()
        {
            testRule.deploy(MESSAGE_CATCH_PROCESS);
            testRule.deployForTenant(TENANT_ONE, MESSAGE_CATCH_PROCESS);

            engineRule.RuntimeService.createProcessInstanceByKey("messageCatch").processDefinitionWithoutTenantId().execute();
            engineRule.RuntimeService.createProcessInstanceByKey("messageCatch").processDefinitionTenantId(TENANT_ONE).execute();

            engineRule.RuntimeService.createMessageCorrelation("message").withoutTenantId().correlate();

            TaskQuery query = engineRule.TaskService.createTaskQuery();

            assertThat(query.count(), @is(1L));
            assertThat(query.singleResult().TenantId, @is(nullValue()));
        }
Beispiel #5
0
        public IEnumerable <FCEventModel> GetUnscheduledTasks()
        {
            var list  = new List <FCEventModel>();
            var query = new TaskQuery()
            {
                NotCompleted = true
            };
            var taskResult = Tasks.GetTasks(query);

            foreach (var task in taskResult.Tasks.Where(x => x.Due.Year == 1))
            {
                list.Add(Converter.ToEvent(task));
            }
            return(list);
        }
Beispiel #6
0
        /// <summary>
        /// 获取当前用户待办任务列表
        /// </summary>
        private void GetReadyTasks()
        {
            IWorkflowService wfService = new WorkflowService();
            var en = new TaskQuery
            {
                UserID = LoginUserID.ToString()
            };
            IList <TaskViewEntity> taskViewList = wfService.GetReadyTasks(en);

            if (taskViewList != null)
            {
                Repeater2.DataSource = taskViewList;
                Repeater2.DataBind();
            }
        }
Beispiel #7
0
//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes:
//ORIGINAL LINE: @Deployment public void testJoinAfterNestedScopes()
        public virtual void testJoinAfterNestedScopes()
        {
            // given
            runtimeService.startProcessInstanceByKey("process");

            TaskQuery query = taskService.createTaskQuery();

            // when
            Task task = query.taskDefinitionKey("task").singleResult();

            taskService.complete(task.Id);

            // then
            assertNull(query.taskDefinitionKey("taskAfterJoin").singleResult());
        }
Beispiel #8
0
//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes:
//ORIGINAL LINE: @Test public void correlateMessagesToIntermediateCatchEventsForMultipleTenants()
        public virtual void correlateMessagesToIntermediateCatchEventsForMultipleTenants()
        {
            testRule.deployForTenant(TENANT_ONE, MESSAGE_CATCH_PROCESS);
            testRule.deployForTenant(TENANT_TWO, MESSAGE_CATCH_PROCESS);

            engineRule.RuntimeService.createProcessInstanceByKey("messageCatch").processDefinitionTenantId(TENANT_ONE).execute();
            engineRule.RuntimeService.createProcessInstanceByKey("messageCatch").processDefinitionTenantId(TENANT_TWO).execute();

            engineRule.RuntimeService.createMessageCorrelation("message").correlateAll();

            TaskQuery query = engineRule.TaskService.createTaskQuery();

            assertThat(query.tenantIdIn(TENANT_ONE).count(), @is(1L));
            assertThat(query.tenantIdIn(TENANT_TWO).count(), @is(1L));
        }
Beispiel #9
0
        /// <summary>
        /// 获取办结任务列表
        /// </summary>
        /// <param name="query"></param>
        /// <returns></returns>
        public IList <TaskViewEntity> GetCompletedTasks(TaskQuery query)
        {
            int allRowsCount = 0;
            var taskManager  = new TaskManager();
            var taskList     = taskManager.GetCompletedTasks(query, out allRowsCount);

            if (taskList != null)
            {
                return(taskList.ToList());
            }
            else
            {
                return(null);
            }
        }
Beispiel #10
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);
        }
Beispiel #11
0
//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes:
//ORIGINAL LINE: @Test public void sendSignalToIntermediateCatchEventsForMultipleTenants()
        public virtual void sendSignalToIntermediateCatchEventsForMultipleTenants()
        {
            testRule.deployForTenant(TENANT_ONE, SIGNAL_CATCH_PROCESS);
            testRule.deployForTenant(TENANT_TWO, SIGNAL_CATCH_PROCESS);

            engineRule.RuntimeService.createProcessInstanceByKey("signalCatch").processDefinitionTenantId(TENANT_ONE).execute();
            engineRule.RuntimeService.createProcessInstanceByKey("signalCatch").processDefinitionTenantId(TENANT_TWO).execute();

            engineRule.RuntimeService.createSignalEvent("signal").send();

            TaskQuery query = engineRule.TaskService.createTaskQuery();

            assertThat(query.tenantIdIn(TENANT_ONE).count(), @is(1L));
            assertThat(query.tenantIdIn(TENANT_TWO).count(), @is(1L));
        }
Beispiel #12
0
        public ActionResult Save(string name, string keyword, bool isCreator = true, int days = 0, UserTaskOrder order = UserTaskOrder.CreateTime, bool?isCompleted = null, int queryId = 0)
        {
            if (string.IsNullOrEmpty(name))
            {
                throw new ArgumentException("请填写任务名称");
            }

            TaskQueryParameter parameter = null;
            TaskQuery          model     = null;

            if (queryId > 0)
            {
                model = Core.QueryManager.GetModel(queryId);
                if (model == null)
                {
                    throw new ArgumentException("参数错误");
                }

                if (model.UserID != Identity.UserID)
                {
                    throw new HttpException(401, "没有权限");
                }
                parameter = model.ConvertToTaskQueryParameter();
            }
            else
            {
                parameter = new TaskQueryParameter
                {
                    SearchKey   = keyword,
                    IsCreator   = isCreator,
                    ReceiverID  = isCreator ? 0 : Identity.UserID,
                    IsCompleted = isCompleted,
                    Order       = order,
                    GetReceiver = true,
                    GetCreator  = true,
                };
                model = new TaskQuery
                {
                    UserID = Identity.UserID,
                };
            }

            model.Content = parameter.ToJson();
            model.Name    = name;

            Core.QueryManager.Save(model);
            return(SuccessJsonResult(new { id = model.ID }));
        }
Beispiel #13
0
        public IEnumerable <Task> GetTasks(TaskQuery query)
        {
            var res = _unitOfWork.Repository <Task>().All();

            if (!string.IsNullOrEmpty(query.BoardId))
            {
                res = res.Where(x => x.BoardId == Guid.Parse(query.BoardId));
            }

            if (!string.IsNullOrEmpty(query.MemberId))
            {
                res = res.Where(x => x.ReporterUserId == Guid.Parse(query.MemberId));
            }

            return(res);
        }
Beispiel #14
0
        //executeJobs
//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes:
//ORIGINAL LINE: @Test public void testExecuteJobWithAuthenticatedTenant()
        public virtual void testExecuteJobWithAuthenticatedTenant()
        {
            string noFailProcessInstanceId = engineRule.RuntimeService.startProcessInstanceByKey("noFail").Id;

            TaskQuery taskQuery = engineRule.TaskService.createTaskQuery().processInstanceId(noFailProcessInstanceId);

            assertEquals(1, taskQuery.list().size());

            string timerJobId = managementService.createJobQuery().processInstanceId(noFailProcessInstanceId).singleResult().Id;

            identityService.setAuthentication("aUserId", null, Arrays.asList(TENANT_ONE));
            managementService.executeJob(timerJobId);

            // then
            assertEquals(0, taskQuery.list().size());
        }
Beispiel #15
0
//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes:
//ORIGINAL LINE: @Test public void testExecuteJobWithDisabledTenantCheck()
        public virtual void testExecuteJobWithDisabledTenantCheck()
        {
            string noFailProcessInstanceId = engineRule.RuntimeService.startProcessInstanceByKey("noFail").Id;

            string timerJobId = managementService.createJobQuery().processInstanceId(noFailProcessInstanceId).singleResult().Id;

            identityService.setAuthentication("aUserId", null);
            engineRule.ProcessEngineConfiguration.TenantCheckEnabled = false;

            managementService.executeJob(timerJobId);

            TaskQuery taskQuery = engineRule.TaskService.createTaskQuery().processInstanceId(noFailProcessInstanceId);

            // then
            assertEquals(0, taskQuery.list().size());
        }
Beispiel #16
0
        public virtual void testStoreFilterWithExpression()
        {
            TaskQuery taskQuery = taskService.createTaskQuery().dueAfterExpression(STATE_MANIPULATING_EXPRESSION);
            Filter    filter    = filterService.newTaskFilter("filter");

            filter.Query = taskQuery;

            try
            {
                filterService.saveFilter(filter);
            }
            catch (ProcessEngineException e)
            {
                assertTextPresent(EXPECTED_STORED_QUERY_FAILURE_MESSAGE, e.Message);
            }
            assertTrue(fieldIsUnchanged());
        }
Beispiel #17
0
//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes:
//ORIGINAL LINE: @Deployment public void testTimerWithCycle() throws Exception
//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET:
        public virtual void testTimerWithCycle()
        {
            runtimeService.startProcessInstanceByKey("nonInterruptingCycle").Id;
            TaskQuery tq = taskService.createTaskQuery().taskDefinitionKey("timerFiredTask");

            assertEquals(0, tq.count());
            moveByHours(1);
            assertEquals(1, tq.count());
            moveByHours(1);
            assertEquals(2, tq.count());

            Task task = taskService.createTaskQuery().taskDefinitionKey("task").singleResult();

            taskService.complete(task.Id);

            moveByHours(1);
            assertEquals(2, tq.count());
        }
Beispiel #18
0
//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes:
//ORIGINAL LINE: @Deployment public void testTwoSubProcessInParallel()
        public virtual void testTwoSubProcessInParallel()
        {
            ProcessInstance pi        = runtimeService.startProcessInstanceByKey("twoSubProcessInParallel");
            TaskQuery       taskQuery = taskService.createTaskQuery().processInstanceId(pi.Id).orderByTaskName().asc();
            IList <Task>    tasks     = taskQuery.list();

            // After process start, both tasks in the subprocesses should be active
            assertEquals("Task in subprocess A", tasks[0].Name);
            assertEquals("Task in subprocess B", tasks[1].Name);

            // validate activity instance tree
            ActivityInstance rootActivityInstance = runtimeService.getActivityInstance(pi.ProcessInstanceId);

            assertEquals(pi.ProcessDefinitionId, rootActivityInstance.ActivityId);
            assertEquals(2, rootActivityInstance.ChildActivityInstances.Length);
            ActivityInstance[] childActivityInstances = rootActivityInstance.ChildActivityInstances;
            foreach (ActivityInstance activityInstance in childActivityInstances)
            {
                assertTrue(Arrays.asList(new string[] { "subProcessA", "subProcessB" }).contains(activityInstance.ActivityId));
                ActivityInstance[] subProcessChildren = activityInstance.ChildActivityInstances;
                assertEquals(1, subProcessChildren.Length);
                assertTrue(Arrays.asList(new string[] { "subProcessATask", "subProcessBTask" }).contains(subProcessChildren[0].ActivityId));
            }

            // Completing both tasks should active the tasks outside the subprocesses
            taskService.complete(tasks[0].Id);

            tasks = taskQuery.list();
            assertEquals("Task after subprocess A", tasks[0].Name);
            assertEquals("Task in subprocess B", tasks[1].Name);

            taskService.complete(tasks[1].Id);

            tasks = taskQuery.list();

            assertEquals("Task after subprocess A", tasks[0].Name);
            assertEquals("Task after subprocess B", tasks[1].Name);

            // Completing these tasks should end the process
            taskService.complete(tasks[0].Id);
            taskService.complete(tasks[1].Id);

            assertProcessEnded(pi.Id);
        }
        public IActionResult GetTodos()
        {
            try
            {
                List <Todo>          todos     = TaskQuery.GetTodos();
                List <TodoViewModel> todoViews = new List <TodoViewModel>();
                foreach (Todo todo in todos)
                {
                    TodoViewModel todoViewModel = new TodoViewModel(todo.Id, todo.TaskName, TaskPropertiesConverter.ConvertPriorityToString(todo));
                    todoViews.Add(todoViewModel);
                }

                return(Ok(todoViews));
            }
            catch (Exception exception)
            {
                return(Problem(exception.Message));
            }
        }
Beispiel #20
0
        // ACT-482
//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes:
//ORIGINAL LINE: @Deployment public void testNestedForkJoin()
        public virtual void testNestedForkJoin()
        {
            string pid = runtimeService.startProcessInstanceByKey("nestedForkJoin").Id;

            // After process startm, only task 0 should be active
            TaskQuery    query = taskService.createTaskQuery().orderByTaskName().asc();
            IList <Task> tasks = query.list();

            assertEquals(1, tasks.Count);
            assertEquals("Task 0", tasks[0].Name);
            assertEquals(1, runtimeService.getActivityInstance(pid).ChildActivityInstances.Length);

            // Completing task 0 will create Task A and B
            taskService.complete(tasks[0].Id);
            tasks = query.list();
            assertEquals(2, tasks.Count);
            assertEquals("Task A", tasks[0].Name);
            assertEquals("Task B", tasks[1].Name);
            assertEquals(2, runtimeService.getActivityInstance(pid).ChildActivityInstances.Length);

            // Completing task A should not trigger any new tasks
            taskService.complete(tasks[0].Id);
            tasks = query.list();
            assertEquals(1, tasks.Count);
            assertEquals("Task B", tasks[0].Name);
            assertEquals(2, runtimeService.getActivityInstance(pid).ChildActivityInstances.Length);

            // Completing task B creates tasks B1 and B2
            taskService.complete(tasks[0].Id);
            tasks = query.list();
            assertEquals(2, tasks.Count);
            assertEquals("Task B1", tasks[0].Name);
            assertEquals("Task B2", tasks[1].Name);
            assertEquals(3, runtimeService.getActivityInstance(pid).ChildActivityInstances.Length);

            // Completing B1 and B2 will activate both joins, and process reaches task C
            taskService.complete(tasks[0].Id);
            taskService.complete(tasks[1].Id);
            tasks = query.list();
            assertEquals(1, tasks.Count);
            assertEquals("Task C", tasks[0].Name);
            assertEquals(1, runtimeService.getActivityInstance(pid).ChildActivityInstances.Length);
        }
Beispiel #21
0
//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes:
//ORIGINAL LINE: @Test public void shouldReturnTasksWithTaskVariableValueEqualsOrTaskVariableValueGreaterThan()
        public virtual void shouldReturnTasksWithTaskVariableValueEqualsOrTaskVariableValueGreaterThan()
        {
            // given
            Task task1 = taskService.newTask();

            taskService.saveTask(task1);
            taskService.setVariable(task1.Id, "aLongValue", 789L);

            Task task2 = taskService.newTask();

            taskService.saveTask(task2);
            taskService.setVariable(task2.Id, "anEvenLongerValue", 1000L);

            // when
            TaskQuery query = taskService.createTaskQuery().or().taskVariableValueEquals("aLongValue", 789L).taskVariableValueGreaterThan("anEvenLongerValue", 999L).endOr();

            // then
            assertEquals(2, query.count());
        }
        public ResponseResult <List <TaskViewEntity> > GetTaskViewList([FromBody] TaskQuery query)
        {
            var result = ResponseResult <List <TaskViewEntity> > .Default();

            try
            {
                var wfService = new WorkflowService();
                var entity    = wfService.GetReadyTasks(query).ToList();

                result = ResponseResult <List <TaskViewEntity> > .Success(entity);
            }
            catch (System.Exception ex)
            {
                result = ResponseResult <List <TaskViewEntity> > .Error(
                    string.Format("获取任务信息失败!{0}", ex.Message)
                    );
            }
            return(result);
        }
Beispiel #23
0
        public virtual void testExtendStoredFilterByExpression()
        {
            // given a stored filter
            TaskQuery taskQuery = taskService.createTaskQuery().dueAfterExpression("${now()}");
            Filter    filter    = filterService.newTaskFilter("filter");

            filter.Query = taskQuery;
            filterService.saveFilter(filter);

            // it is possible to execute the stored query with an expression
            assertEquals(new long?(0), filterService.count(filter.Id));
            assertEquals(0, filterService.list(filter.Id).Count);

            // but it is not possible to executed the filter with an extended query that uses expressions
            extendFilterAndValidateFailingQuery(filter, taskService.createTaskQuery().dueAfterExpression(STATE_MANIPULATING_EXPRESSION));

            // cleanup
            filterService.deleteFilter(filter.Id);
        }
Beispiel #24
0
        public async Task Handle_HappyFlow()
        {
            // Arrange
            TaskQuery request = new TaskQuery
            {
                Id = ConstantsTasksTest.Id
            };
            TaskDomain tasktoReturn = ConstantsTasksTest.taskDomain;

            _tasksRepoByAccountMock.Setup(x => x.TaskExists(ConstantsTasksTest.taskDomain.AccountId, ConstantsTasksTest.Id)).Returns(true);
            _tasksRepoByAccountMock.Setup(x => x.GetTask(ConstantsTasksTest.taskDomain.AccountId, ConstantsTasksTest.Id)).Returns(tasktoReturn);

            // Act
            Result <TaskDomain> result = await _taskQueryHandler.Handle(request, CancellationToken.None);

            // Assert
            result.IsSuccess.Should().BeTrue();
            result.Value.Should().Be(tasktoReturn);
        }
Beispiel #25
0
        public virtual IList <TaskDto> queryTasks(TaskQueryDto queryDto, int?firstResult, int?maxResults)
        {
            ProcessEngine engine = ProcessEngine;

            queryDto.ObjectMapper = ObjectMapper;
            TaskQuery query = queryDto.toQuery(engine);

            IList <Task> matchingTasks = executeTaskQuery(firstResult, maxResults, query);

            IList <TaskDto> tasks = new List <TaskDto>();

            foreach (Task task in matchingTasks)
            {
                TaskDto returnTask = TaskDto.fromEntity(task);
                tasks.Add(returnTask);
            }

            return(tasks);
        }
        public List <SPGetTask_Result> Filter(TaskQuery query, out int count)
        {
            count = 0;
            int pageNumber = query.PageNumber != 0 ? query.PageNumber : 1;
            var start      = 0;
            var limit      = query.PageSize;

            start = (pageNumber - 1) * limit;
            int      totalRow                  = 0;
            var      keyword                   = string.IsNullOrEmpty(query.Keyword) != true ? query.Keyword : "";
            string   userId                    = query.UserId;
            DateTime?startDate                 = query.FromDate;
            DateTime?endDate                   = query.ToDate;
            int?     statusId                  = query.StatusId;
            bool?    assignToMe                = query.AssignToMe;
            bool?    relativeToMe              = query.RelativeToMe;
            List <SPGetTask_Result> result     = new List <SPGetTask_Result>();
            ObjectParameter         prTotalRow = new ObjectParameter("total", totalRow);
            bool?documentReceived              = null;

            if (query.DocumentReceived.HasValue)
            {
                documentReceived = query.DocumentReceived.Value != 1 ? false : true;
            }
            if (query.StatusId != 0)
            {
                Status status = _statusRepository.GetById(query.StatusId);
                if (status.Code == "HH")
                {
                    result = _entities.SPGetTask(userId, 0, startDate, endDate, Util.DetecVowel(keyword), query.DocumentId, documentReceived, assignToMe, relativeToMe, start, limit, prTotalRow).Where(n => n.Expired == true).ToList();
                }
                else
                {
                    result = _entities.SPGetTask(userId, statusId, startDate, endDate, Util.DetecVowel(keyword), query.DocumentId, documentReceived, assignToMe, relativeToMe, start, limit, prTotalRow).ToList();
                }
            }
            else
            {
                result = _entities.SPGetTask(userId, statusId, startDate, endDate, Util.DetecVowel(keyword), query.DocumentId, documentReceived, assignToMe, relativeToMe, start, limit, prTotalRow).ToList();
            }
            count = (prTotalRow.Value == null) ? 0 : Convert.ToInt32(prTotalRow.Value);
            return(result);
        }
Beispiel #27
0
//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes:
//ORIGINAL LINE: @Test public void testVariableConditionWithVariableEvent()
        public virtual void testVariableConditionWithVariableEvent()
        {
            //given process with boundary conditional event and defined variable name and event
//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final':
//ORIGINAL LINE: final org.camunda.bpm.model.bpmn.BpmnModelInstance modelInstance = org.camunda.bpm.model.bpmn.Bpmn.createExecutableProcess(CONDITIONAL_EVENT_PROCESS_KEY).startEvent().intermediateCatchEvent(CONDITIONAL_EVENT).conditionalEventDefinition().condition(CONDITION_EXPR).camundaVariableEvents(CONDITIONAL_VAR_EVENT_UPDATE).conditionalEventDefinitionDone().userTask().name(TASK_AFTER_CONDITION).endEvent().done();
            BpmnModelInstance modelInstance = Bpmn.createExecutableProcess(CONDITIONAL_EVENT_PROCESS_KEY).startEvent().intermediateCatchEvent(CONDITIONAL_EVENT).conditionalEventDefinition().condition(CONDITION_EXPR).camundaVariableEvents(CONDITIONAL_VAR_EVENT_UPDATE).conditionalEventDefinitionDone().userTask().name(TASK_AFTER_CONDITION).endEvent().done();

            engine.manageDeployment(repositoryService.createDeployment().addModelInstance(CONDITIONAL_MODEL, modelInstance).deploy());

            IDictionary <string, object> variables = Variables.createVariables();

            variables[VARIABLE_NAME + 1] = 0;
            ProcessInstance procInst  = runtimeService.startProcessInstanceByKey(CONDITIONAL_EVENT_PROCESS_KEY, variables);
            TaskQuery       taskQuery = taskService.createTaskQuery().processInstanceId(procInst.Id);
            Execution       execution = runtimeService.createExecutionQuery().processInstanceId(procInst.Id).activityId(CONDITIONAL_EVENT).singleResult();

            assertNotNull(execution);
            assertEquals(1, conditionEventSubscriptionQuery.list().Count);


            //when variable with name `variable` is set on execution
            runtimeService.setVariable(procInst.Id, VARIABLE_NAME, 1);

            //then nothing happens
            execution = runtimeService.createExecutionQuery().processInstanceId(procInst.Id).activityId(CONDITIONAL_EVENT).singleResult();
            assertNotNull(execution);
            assertEquals(1, conditionEventSubscriptionQuery.list().Count);

            //when variable with name `variable1` is updated
            runtimeService.setVariable(procInst.Id, VARIABLE_NAME + 1, 1);

            //then execution is at user task after conditional intermediate event
            Task task = taskQuery.singleResult();

            assertEquals(TASK_AFTER_CONDITION, task.Name);
            assertEquals(0, conditionEventSubscriptionQuery.list().Count);

            //and task can be completed which ends process instance
            taskService.complete(task.Id);
            assertNull(taskService.createTaskQuery().singleResult());
            assertNull(runtimeService.createProcessInstanceQuery().singleResult());
        }
Beispiel #28
0
        public IQueryable <Task> Where(TaskQuery query)
        {
            var linq = Include(x => x.TaskAssignees).Include(x => x.TaskLabels);

            if (!string.IsNullOrEmpty(query.BoardId))
            {
                var boardId = Guid.Parse(query.BoardId);
                return(linq.Where(x => x.EntityStatus == EntityStatus.Activated && x.BoardId == boardId));
            }

            if (!string.IsNullOrEmpty(query.MemberId))
            {
                var memberId     = Guid.Parse(query.MemberId);
                var taskAssigned = _taskAssigneeService.Include(x => x.Task).ThenInclude(x => x.WorkLogs).Where(x => x.UserId == memberId).Select(x => x.Task);
                var taskLogged   = _workLogService.Include(x => x.Task).Where(x => x.UserId == memberId).Select(x => x.Task).GroupBy(x => x.Id).Select(x => x.First());
                return(taskAssigned.Union(taskLogged).OrderBy(x => x.BoardId).ThenBy(x => x.TaskKey));
            }

            return(linq.Where(x => x.EntityStatus == EntityStatus.Activated));
        }
Beispiel #29
0
        public async Task Handle_TaskDoesntExists_ReturnSpecificError()
        {
            // Arrange
            TaskQuery request = new TaskQuery
            {
                Id = ConstantsTasksTest.Id
            };

            _tasksRepoByAccountMock.Setup(x => x.TaskExists(ConstantsTasksTest.taskDomain.AccountId, ConstantsTasksTest.Id)).Returns(false);

            // Act
            Result <TaskDomain> result = await _taskQueryHandler.Handle(request, CancellationToken.None);

            // Assert
            result.IsSuccess.Should().BeFalse();
            result.Errors.Count.Should().Be(1);
            var expectedError = new CustomError(ErrorsCodesContants.TASK_ID_NOT_FOUND, ErrorsMessagesConstants.TASK_ID_NOT_FOUND, 404);

            result.Errors[0].Should().BeEquivalentTo(expectedError);
        }
Beispiel #30
0
 public void Save(TaskQuery model)
 {
     using (var db = GetDbContext())
     {
         if (model.ID > 0)
         {
             var entity = db.TaskQueries.FirstOrDefault(e => e.ID == model.ID);
             if (entity != null)
             {
                 entity.Name    = model.Name;
                 entity.Content = model.Content;
             }
         }
         else
         {
             db.TaskQueries.Add(model);
         }
         db.SaveChanges();
     }
 }