/**
  * @param CommandMessageInterface $commandMessage
  * @param SerializerInterface $serializer
  * @param bool $expectReply
  */
 public function __construct(CommandMessageInterface $commandMessage, SerializerInterface $serializer, $expectReply)
 {
     $this->commandMessage = $commandMessage;
     $this->commandIdentifier = $commandMessage->getIdentifier();
     $this->expectReply = $expectReply;
     $messageSerializer = new MessageSerializer($serializer);
     $payload = $messageSerializer->serializePayload($commandMessage);
     $metaData = $messageSerializer->serializeMetaData($commandMessage);
     $this->payloadType = $payload->getType()->getName();
     $this->payloadRevision = $payload->getType()->getRevision();
     $this->serializedPayload = $payload->getData();
     $this->serializedMetaData = $metaData->getData();
     $this->commandName = $commandMessage->getCommandName();
 }
 public function provideAuditDataFor(CommandMessageInterface $command)
 {
     return array($this->correlationIdKey => $command->getIdentifier());
 }