Ejemplo n.º 1
0
 /**
  * {@inheritdoc}
  */
 public function saveSnapshot(EventProviderInterface $eventProvider)
 {
     $eventProviderId = $eventProvider->getId()->toString();
     $data = ['data' => $this->serializer->serialize($eventProvider, 'array'), 'type' => get_class($eventProvider)];
     $document = ['id' => Uuid::uuid4()->toString(), 'eventProviderId' => $eventProviderId, 'data' => $data, 'version' => $eventProvider->getVersion(), 'time' => new \MongoDate()];
     try {
         $this->client->selectCollection($this->options->getDatabase(), $eventProviderId)->insert($document);
     } catch (\MongoCursorException $e) {
         throw new EventStoreException(__METHOD__ . ' : ' . $e->getMessage());
     } catch (\Exception $e) {
         throw new EventStoreException(__METHOD__ . ' : ' . $e->getMessage());
     }
 }
 /**
  * {@inheritdoc}
  */
 public function saveSnapshot(EventProviderInterface $eventProvider)
 {
     $this->snapshots[$eventProvider->getId()->toString()] = $eventProvider;
 }
 /**
  * {@inheritdoc}
  */
 public function save(EventProviderInterface $eventProvider)
 {
     $this->eventStore->addEventStream($eventProvider->getUncommittedEventStream());
     $eventProvider->clear();
 }