protected internal virtual IList <BpmnModelInstance> createProcesses(int numberOfProcesses) { IList <BpmnModelInstance> result = new List <BpmnModelInstance>(numberOfProcesses); for (int i = 0; i < numberOfProcesses; i++) { result.Add(ProcessModels.oneTaskProcess(i)); } return(result); }
protected internal virtual IList <IBpmnModelInstance> createSequentialCallActivityProcessAsync() { ICollection <IBpmnModelInstance> modelInstances = new LinkedList <IBpmnModelInstance>(); modelInstances.Add(CallActivityModels.oneBpmnCallActivityProcessAsExpressionAsync(0)); modelInstances.Add(CallActivityModels.oneBpmnCallActivityProcessPassingVariables(1, 2)); modelInstances.Add(CallActivityModels.oneBpmnCallActivityProcessPassingVariables(2, 0)); modelInstances.Add(ProcessModels.SetOneTaskProcess(3)); return(modelInstances as IList <IBpmnModelInstance>); }
public virtual IBpmnModelInstance Build() { return(ProcessModels.NewModel(ProcessKeyRenamed) .StartEvent() .ServiceTask(ExternalTaskNameRenamed) .CamundaType(ExternalTaskTypeRenamed) .CamundaTopic(TopicRenamed) .CamundaTaskPriority(PriorityRenamed.ToString()) .EndEvent() .Done()); }
/// <summary> /// Initially populates a list of processes. /// </summary> private void PopulateProcesses() { foreach (int key in ProcessModels.Keys) { ProcessModels.Remove(key); } foreach (System.Diagnostics.Process process in System.Diagnostics.Process.GetProcesses()) { AddProcess(process); } }
public ActionResult Create([Bind(Include = "ProcessID,Name")] ProcessModels processModels) { if (ModelState.IsValid) { processModels.CreationTime = DateTime.Now; db.ProcessModels.Add(processModels); db.SaveChanges(); return(RedirectToAction("Edit", new { id = processModels.ProcessID })); } return(View(processModels)); }
// GET: ProcessModels/Delete/5 public ActionResult Delete(int?id) { if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } ProcessModels processModels = db.ProcessModels.Find(id); if (processModels == null) { return(HttpNotFound()); } return(View(processModels)); }
public virtual void testMigrateEventSubscriptionUpdateSignalExpressionNameWithVariables() { // given var newSignalName = "new" + SignalCatchModels.SIGNAL_NAME + "-${var}"; var sourceProcessDefinition = testHelper.DeployAndGetDefinition(SignalCatchModels.ONE_SIGNAL_CATCH_PROCESS); var targetProcessDefinition = testHelper.DeployAndGetDefinition(ProcessModels.NewModel() .StartEvent() .IntermediateCatchEvent("signalCatch") .Signal(newSignalName) .UserTask("userTask") .EndEvent() .Done()); var migrationPlan = rule.RuntimeService.CreateMigrationPlan(sourceProcessDefinition.Id, targetProcessDefinition.Id) .MapActivities("signalCatch", "signalCatch") .UpdateEventTrigger() .Build(); var variables = new Dictionary <string, object>(); variables["var"] = "foo"; // when var processInstance = testHelper.CreateProcessInstanceAndMigrate(migrationPlan, variables); // then there should be a variable var beforeMigration = testHelper.SnapshotBeforeMigration.GetSingleVariable("var"); Assert.AreEqual(1, testHelper.SnapshotAfterMigration.GetVariables() .Count); testHelper.AssertVariableMigratedToExecution(beforeMigration, beforeMigration.ExecutionId); // and the signal event subscription's event name has changed var resolvedSignalName = "new" + SignalCatchModels.SIGNAL_NAME + "-foo"; testHelper.AssertEventSubscriptionMigrated("signalCatch", SignalCatchModels.SIGNAL_NAME, "signalCatch", resolvedSignalName); // and it is possible to trigger the event and complete the task afterwards rule.RuntimeService.SignalEventReceived(resolvedSignalName); testHelper.CompleteTask("userTask"); testHelper.AssertProcessEnded(processInstance.Id); }
public virtual void testCannotMigrateAsyncActivityInstance() { // given //JAVA TO C# CONVERTER WARNING: The .NET Type.FullName property will not always yield results identical to the Java Class.GetName method: var model = ProcessModels.NewModel() .StartEvent() .ServiceTask("serviceTask") //.CamundaAsyncBefore() .CamundaClass(typeof(SignallableServiceTaskDelegate).FullName) .EndEvent() .Done(); var sourceProcessDefinition = testHelper.DeployAndGetDefinition(model); var targetProcessDefinition = testHelper.DeployAndGetDefinition(model); var migrationPlan = rule.RuntimeService.CreateMigrationPlan(sourceProcessDefinition.Id, targetProcessDefinition.Id) .MapActivities("serviceTask", "serviceTask") .Build(); var ProcessInstanceId = rule.RuntimeService.StartProcessInstanceById(sourceProcessDefinition.Id) .Id; testHelper.ExecuteAvailableJobs(); // when try { rule.RuntimeService.NewMigration(migrationPlan) .ProcessInstanceIds(ProcessInstanceId) .Execute(); Assert.Fail("should Assert.Fail"); } catch (MigratingProcessInstanceValidationException e) { // then MigratingProcessInstanceValidationReportAssert.That(e.ValidationReport) .HasActivityInstanceFailures("serviceTask", "The type of the source activity is not supported for activity instance migration"); } }
//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes: //ORIGINAL LINE: @Test public void testInvokeListenersWhenDeletingProcessInstancesAsync() public virtual void testInvokeListenersWhenDeletingProcessInstancesAsync() { // given IncrementCounterListener.counter = 0; //JAVA TO C# CONVERTER WARNING: The .NET Type.FullName property will not always yield results identical to the Java Class.getName method: BpmnModelInstance instance = ProcessModels.newModel(ONE_TASK_PROCESS).startEvent().userTask().camundaExecutionListenerClass([email protected]_Fields.EVENTNAME_END, typeof(IncrementCounterListener).FullName).endEvent().done(); migrationRule.deploy(instance); IList <string> processIds = startTestProcesses(1); // when Batch batch = runtimeService.deleteProcessInstancesAsync(processIds, TESTING_INSTANCE_DELETE); executeSeedJob(batch); executeBatchJobs(batch); // then assertThat(IncrementCounterListener.counter, @is(1)); }
public virtual void testMigrateJobUpdateTimerConfiguration() { // given ClockTestUtil.SetClockToDateWithoutMilliseconds(); var sourceProcessDefinition = testHelper.DeployAndGetDefinition(TimerCatchModels.ONE_TIMER_CATCH_PROCESS); var targetProcessDefinition = testHelper.DeployAndGetDefinition(ProcessModels.NewModel() .StartEvent() .IntermediateCatchEvent("timerCatch") .TimerWithDuration("PT50M") .UserTask("userTask") .EndEvent() .Done()); var migrationPlan = rule.RuntimeService.CreateMigrationPlan(sourceProcessDefinition.Id, targetProcessDefinition.Id) .MapActivities("timerCatch", "timerCatch") .UpdateEventTrigger() .Build(); // when var processInstance = testHelper.CreateProcessInstanceAndMigrate(migrationPlan); // then var newDueDate = new DateTime(ClockUtil.CurrentTime.Ticks).AddMinutes(50); testHelper.AssertJobMigrated(testHelper.SnapshotBeforeMigration.Jobs[0], "timerCatch", newDueDate); // and it is possible to trigger the event var jobAfterMigration = testHelper.SnapshotAfterMigration.Jobs[0]; rule.ManagementService.ExecuteJob(jobAfterMigration.Id); testHelper.CompleteTask("userTask"); testHelper.AssertProcessEnded(processInstance.Id); }
//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes: //ORIGINAL LINE: @Test public void testMigrateJobUpdateTimerConfiguration() public virtual void testMigrateJobUpdateTimerConfiguration() { // given ClockTestUtil.setClockToDateWithoutMilliseconds(); ProcessDefinition sourceProcessDefinition = testHelper.deployAndGetDefinition(TimerCatchModels.ONE_TIMER_CATCH_PROCESS); ProcessDefinition targetProcessDefinition = testHelper.deployAndGetDefinition(ProcessModels.newModel().startEvent().intermediateCatchEvent("timerCatch").timerWithDuration("PT50M").userTask("userTask").endEvent().done()); MigrationPlan migrationPlan = rule.RuntimeService.createMigrationPlan(sourceProcessDefinition.Id, targetProcessDefinition.Id).mapActivities("timerCatch", "timerCatch").updateEventTrigger().build(); // when ProcessInstance processInstance = testHelper.createProcessInstanceAndMigrate(migrationPlan); // then DateTime newDueDate = (new DateTime(ClockUtil.CurrentTime)).plusMinutes(50).toDate(); testHelper.assertJobMigrated(testHelper.snapshotBeforeMigration.Jobs[0], "timerCatch", newDueDate); // and it is possible to trigger the event Job jobAfterMigration = testHelper.snapshotAfterMigration.Jobs[0]; rule.ManagementService.executeJob(jobAfterMigration.Id); testHelper.completeTask("userTask"); testHelper.assertProcessEnded(processInstance.Id); }
//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes: //ORIGINAL LINE: @Test public void testChangeTaskType() public virtual void testChangeTaskType() { // given ProcessDefinition sourceProcessDefinition = testHelper.deployAndGetDefinition(ExternalTaskModels.ONE_EXTERNAL_TASK_PROCESS); ProcessDefinition targetProcessDefinition = testHelper.deployAndGetDefinition(ProcessModels.newModel().startEvent().businessRuleTask("externalBusinessRuleTask").camundaType(ExternalTaskModels.EXTERNAL_TASK_TYPE).camundaTopic(ExternalTaskModels.TOPIC).camundaTaskPriority(ExternalTaskModels.PRIORITY.ToString()).endEvent().done()); MigrationPlan migrationPlan = rule.RuntimeService.createMigrationPlan(sourceProcessDefinition.Id, targetProcessDefinition.Id).mapActivities("externalTask", "externalBusinessRuleTask").build(); ProcessInstance processInstance = rule.RuntimeService.startProcessInstanceById(sourceProcessDefinition.Id); // when testHelper.migrateProcessInstance(migrationPlan, processInstance); // then the task and process can be completed LockedExternalTask task = fetchAndLockSingleTask(ExternalTaskModels.TOPIC); rule.ExternalTaskService.complete(task.Id, WORKER_ID); testHelper.assertProcessEnded(processInstance.Id); }
private void OnRemovedProcess(int processId) => ProcessModels.Remove(processId);
public virtual BpmnModelInstance build() { return(ProcessModels.newModel(processKey_Renamed).startEvent().serviceTask(externalTaskName_Renamed).camundaType(externalTaskType_Renamed).camundaTopic(topic_Renamed).camundaTaskPriority(priority_Renamed.ToString()).endEvent().done()); }
//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes: //ORIGINAL LINE: @Test public void testMigrateEventSubscriptionPreserveMessageName() public virtual void testMigrateEventSubscriptionPreserveMessageName() { // given ProcessDefinition sourceProcessDefinition = testHelper.deployAndGetDefinition(MessageReceiveModels.ONE_MESSAGE_CATCH_PROCESS); ProcessDefinition targetProcessDefinition = testHelper.deployAndGetDefinition(ProcessModels.newModel().startEvent().intermediateCatchEvent("messageCatch").message("new" + MessageReceiveModels.MESSAGE_NAME).userTask("userTask").endEvent().done()); MigrationPlan migrationPlan = rule.RuntimeService.createMigrationPlan(sourceProcessDefinition.Id, targetProcessDefinition.Id).mapActivities("messageCatch", "messageCatch").build(); // when ProcessInstance processInstance = testHelper.createProcessInstanceAndMigrate(migrationPlan); // then the message event subscription's event name has not changed testHelper.assertEventSubscriptionMigrated("messageCatch", "messageCatch", MessageReceiveModels.MESSAGE_NAME); // and it is possible to trigger the receive task rule.RuntimeService.correlateMessage(MessageReceiveModels.MESSAGE_NAME); testHelper.completeTask("userTask"); testHelper.assertProcessEnded(processInstance.Id); }
//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes: //ORIGINAL LINE: @Test public void testMigrateEventSubscriptionUpdateSignalName() public virtual void testMigrateEventSubscriptionUpdateSignalName() { // given ProcessDefinition sourceProcessDefinition = testHelper.deployAndGetDefinition(SignalCatchModels.ONE_SIGNAL_CATCH_PROCESS); ProcessDefinition targetProcessDefinition = testHelper.deployAndGetDefinition(ProcessModels.newModel().startEvent().intermediateCatchEvent("signalCatch").signal("new" + SignalCatchModels.SIGNAL_NAME).userTask("userTask").endEvent().done()); MigrationPlan migrationPlan = rule.RuntimeService.createMigrationPlan(sourceProcessDefinition.Id, targetProcessDefinition.Id).mapActivities("signalCatch", "signalCatch").updateEventTrigger().build(); // when ProcessInstance processInstance = testHelper.createProcessInstanceAndMigrate(migrationPlan); // then the message event subscription's event name has not changed testHelper.assertEventSubscriptionMigrated("signalCatch", SignalCatchModels.SIGNAL_NAME, "signalCatch", "new" + SignalCatchModels.SIGNAL_NAME); // and it is possible to trigger the event rule.RuntimeService.signalEventReceived("new" + SignalCatchModels.SIGNAL_NAME); testHelper.completeTask("userTask"); testHelper.assertProcessEnded(processInstance.Id); }
public ActionResult Update(JsonComboUpdate psvm) { int success = 0; string message = "Unable to save in database"; switch (psvm.Operation) { case OperationType.Name: { ProcessModels processModels = db.ProcessModels.Find(psvm.Identifier); processModels.Name = psvm.Value; db.SaveChanges(); success = 1; message = ""; break; } case OperationType.Parent: { ProcessModels processModels = db.ProcessModels.Find(psvm.Identifier); ProcessModels tmp = null; processModels.ParentID = psvm.Value == null ? null : (int?)int.Parse(psvm.Value); if (processModels.ParentID == null) { processModels.Level = 0; TasksController.RemoveAllTasks(processModels.ProcessID); } else { tmp = db.ProcessModels.Find(processModels.ParentID); processModels.Level = tmp.Level + 1; if (db.Tasks.Where(x => x.ProcessID == processModels.ProcessID).Count() == 0) { TasksController.AddNewTask(processModels.ProcessID); } } db.SaveChanges(); success = 2; message = ""; break; } case OperationType.Procedure: { ProcessModels processModels = db.ProcessModels.Find(psvm.Identifier); processModels.ProcedureID = psvm.Value == null ? null : (int?)int.Parse(psvm.Value); db.SaveChanges(); success = 1; message = ""; break; } case OperationType.Manager: { ProcessModels processModels = db.ProcessModels.Find(psvm.Identifier); processModels.ManagerID = psvm.Value == null ? null : (int?)int.Parse(psvm.Value); db.SaveChanges(); success = 1; message = ""; break; } } return(Json(new { code = success, message = message }, "application/json")); }