/**
  * @param SubscriptionCancelCommand $message
  *
  * @throws \Baboon\SubscriptionBundle\Exception\PackageNotFoundException
  * @throws \Baboon\SubscriptionBundle\Exception\SubscriptionManageException
  */
 public function cancelSubscription(SubscriptionCancelCommand $message)
 {
     if (null === ($package = $this->packageManager->findInitial())) {
         throw new PackageNotFoundException('Initial package');
     }
     $currentPackage = $this->subscriptionProvider->getPackage();
     if (null !== $currentPackage && $currentPackage->isInitial()) {
         throw new SubscriptionManageException(sprintf('Current package "%s" not cancelable', $currentPackage));
     }
     if (null !== ($subscription = $this->subscriptionProvider->getSubscription())) {
         $subscription->select($package);
         $this->subscriptionManager->updateSubscription($subscription);
         $this->eventRecorder->record(new SubscriptionCanceledEvent($subscription));
     }
 }
 protected function deleteItem($item)
 {
     $this->manager->deleteSubscription($item);
 }
 /**
  * {@inheritdoc}
  */
 public function getSubscription()
 {
     return $this->subscriptionManager->findSubscriptionBy(['id' => 1]);
 }