コード例 #1
0
 public static function record(TaskId $taskId, ProcessingMetadata $metadata)
 {
     $event = self::occur($taskId->toString(), ['task_metadata' => $metadata->toArray()]);
     $event->taskId = $taskId;
     $event->taskMetadata = $metadata;
     return $event;
 }
コード例 #2
0
 /**
  * @param TaskId $taskId
  * @param TaskType $taskType
  * @param MessageHandler $messageHandler
  * @param Prototype $processingType
  * @param ProcessingMetadata $metadata
  * @return TaskWasSetUp
  */
 public static function with(TaskId $taskId, TaskType $taskType, MessageHandler $messageHandler, Prototype $processingType, ProcessingMetadata $metadata)
 {
     $event = self::occur($taskId->toString(), ['task_type' => $taskType->toString(), 'message_handler_id' => $messageHandler->messageHandlerId()->toString(), 'processing_type' => $processingType->of(), 'task_metadata' => $metadata->toArray()]);
     $event->taskId = $taskId;
     $event->taskType = $taskType;
     $event->messageHandlerId = $messageHandler->messageHandlerId();
     $event->processingType = $processingType;
     $event->taskMetadata = $metadata;
     return $event;
 }
コード例 #3
0
 /**
  * @param TaskId $taskId
  */
 private function insertTaskIfDataIsComplete(TaskId $taskId)
 {
     if (isset($this->tasksEvents[$taskId->toString()]) && count($this->tasksEvents[$taskId->toString()]) >= 2) {
         $taskWasSetUp = null;
         $taskWasAddedToProcess = null;
         foreach ($this->tasksEvents[$taskId->toString()] as $event) {
             if ($event instanceof TaskWasSetUp) {
                 $taskWasSetUp = $event;
                 continue;
             }
             if ($event instanceof TaskWasAddedToProcess) {
                 $taskWasAddedToProcess = $event;
                 continue;
             }
         }
         if (!is_null($taskWasSetUp) && !is_null($taskWasAddedToProcess)) {
             $this->connection->insert(Tables::TASK, ['id' => $taskWasSetUp->taskId()->toString(), 'type' => $taskWasSetUp->taskType()->toString(), 'processing_type' => $taskWasSetUp->processingType()->of(), 'metadata' => json_encode($taskWasSetUp->taskMetadata()->toArray()), 'workflow_id' => $taskWasAddedToProcess->workflowId()->toString(), 'process_id' => $taskWasAddedToProcess->processId()->toString(), 'message_handler_id' => $taskWasSetUp->messageHandlerId()]);
         }
         unset($this->tasksEvents[$taskId->toString()]);
     }
 }
コード例 #4
0
ファイル: Task.php プロジェクト: prooph/link-process-manager
 /**
  * @return string representation of the unique identifier of the aggregate root
  */
 protected function aggregateId()
 {
     return $this->id->toString();
 }
コード例 #5
0
 /**
  * @param TaskId $other
  * @return bool
  */
 public function equals(TaskId $other)
 {
     return $this->toString() === $other->toString();
 }
コード例 #6
0
 /**
  * @param TaskId $taskId
  * @return TaskNotFound
  */
 public static function withId(TaskId $taskId)
 {
     return new self(sprintf('Task with id %s could not be found', $taskId->toString()));
 }
コード例 #7
0
 /**
  * @param TaskId $taskId
  * @return Task
  */
 public function get(TaskId $taskId)
 {
     return $this->getAggregateRoot($taskId->toString());
 }