/** * @param ProcessId $processId * @param TaskListPosition $parentTaskListPosition * @param TaskList $taskList * @param array $config * @param bool $syncLogMessages * @throws \InvalidArgumentException * @return static */ public static function asSubProcess(ProcessId $processId, TaskListPosition $parentTaskListPosition, TaskList $taskList, array $config, $syncLogMessages) { if (!is_bool($syncLogMessages)) { throw new \InvalidArgumentException("Argument syncLogMessages must be of type boolean"); } $instance = self::occur($processId->toString(), ['config' => $config, 'parent_task_list_Position' => $parentTaskListPosition->toString(), 'task_list' => $taskList->getArrayCopy(), 'sync_log_messages' => $syncLogMessages]); $instance->processId = $processId; $instance->parentTaskListPosition = $parentTaskListPosition; return $instance; }
/** * @return TaskList */ public function newTaskList() { if (is_null($this->newTaskList)) { $this->newTaskList = TaskList::fromArray($this->payload['new_task_list']); } return $this->newTaskList; }
/** * @param LogMessageReceived $event */ protected function whenLogMessageReceived(LogMessageReceived $event) { $taskListEntry = $this->taskList->getTaskListEntryAtPosition($event->taskListPosition()); $sbMessage = RemoteMessage::fromArray($event->payload()['message']); $taskListEntry->logMessage(LogMessage::fromServiceBusMessage($sbMessage)); }
/** * @return TaskList */ protected function getTestTaskList() { $task1 = CollectData::from('crm', UserDictionary::prototype()); $task2 = CollectData::from('online-shop', UserDictionary::prototype()); $task3 = CollectData::from('address-book', UserDictionary::prototype()); $processId = ProcessId::generate(); $taskListId = TaskListId::linkWith(NodeName::defaultName(), $processId); return TaskList::scheduleTasks($taskListId, [$task1, $task2, $task3]); }