code: public function handle(CommandInterface $command)
      {
          /** @var Media $media */
          $media = $command->getPayload();
  
          if ($media->getHash() === $this->mediaDataProvider->getMediaHashForMediaObject($media)) {
              return true;
          }
  
          $this->attributeHelper->addFieldAsAttribute($media, 'alternateName');
          $this->attributeHelper->addFieldAsAttribute($media, 'name');
          $this->attributeHelper->addFieldAsAttribute($media, 'filename');
          $this->attributeHelper->addFieldAsAttribute($media, 'hash');
  
          $identity = $this->identityService->findOneBy([
              'objectIdentifier' => (string) $media->getIdentifier(),
              'objectType' => Media::TYPE,
              'adapterName' => ShopwareAdapter::NAME,
          ]);
  
          $resource = $this->getMediaResource();
  
          if (null !== $identity) {
              try {
                  $resource->delete($identity->getAdapterIdentifier());
              } catch (MediaNotFoundException $exception) {
                  // fail silently
              }
  
              $identities = $this->identityService->findBy([
                  'objectIdentifier' => $identity->getObjectIdentifier(),
                  'objectType' => Media::TYPE,
                  'adapterIdentifier' => $identity->getAdapterIdentifier(),
                  'adapterName' => $identity->getAdapterName(),
              ]);
  
              array_walk($identities, function (Identity $identity) {
                  $this->identityService->remove($identity);
              });
          }
  
          $params = $this->mediaRequestGenerator->generate($media);
          $mediaModel = $resource->create($params);
  
          $this->identityService->insert(
              $media->getIdentifier(),
              Media::TYPE,
              (string) $mediaModel->getId(),
              ShopwareAdapter::NAME
          );
  
          $this->attributePersister->saveMediaAttributes(
              $mediaModel,
              $media->getAttributes()
          );
  
          return true;
      }
docs: {@inheritdoc}
  
  @param TransferObjectCommand $command