/**
  * Gets the template collection from an action on the rule.
  *
  * @param \Drupal\rng\RuleInterface $rule
  *   The rule.
  *
  * @return \Drupal\courier\TemplateCollectionInterface|NULL
  *   A template collection entity, or NULL if no template collection is
  *   associated.
  */
 protected function getTemplateCollectionForRule(RuleInterface $rule)
 {
     foreach ($rule->getActions() as $action) {
         $conf = $action->getConfiguration();
         $id = $conf['template_collection'];
         if ($id && ($template_collection = TemplateCollection::load($id))) {
             return $template_collection;
         }
     }
     return NULL;
 }
 /**
  * {@inheritdoc}
  */
 public function submitConfigurationForm(array &$form, FormStateInterface $form_state)
 {
     $configuration = $this->getConfiguration();
     // Create new.
     if (!isset($configuration['template_collection'])) {
         $template_collection = TemplateCollection::create();
         if ($template_collection->save()) {
             $this->courierManager->addTemplates($template_collection);
             $template_collection->save();
         }
         $this->configuration['template_collection'] = $template_collection->id();
     }
 }