/** * {@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(); }