/**
  * @param \Symfony\Component\HttpFoundation\Request $request
  *
  * @return array
  */
 public function editAction(Request $request)
 {
     $idAttributesMetadata = $this->castId($request->query->get(self::PARAM_ID));
     $dataProvider = $this->getFactory()->createSearchPreferencesDataProvider();
     $form = $this->getFactory()->createSearchPreferencesForm($dataProvider->getData($idAttributesMetadata), $dataProvider->getOptions())->handleRequest($request);
     if ($form->isValid()) {
         $productSearchPreferencesTransfer = new ProductSearchPreferencesTransfer();
         $productSearchPreferencesTransfer->setIdProductAttributesMetadata($idAttributesMetadata)->fromArray($form->getData(), true);
         $this->getFacade()->saveProductSearchPreferences($productSearchPreferencesTransfer);
         $this->addSuccessMessage('Search Preferences has been saved successfully');
     }
     return $this->viewResponse(['form' => $form->createView()]);
 }
 /**
  * @param \Generated\Shared\Transfer\ProductSearchPreferencesTransfer $productSearchPreferencesTransfer
  * @param int $idProductAttributesMetadata
  *
  * @return $this
  */
 protected function addCompletionTerms(ProductSearchPreferencesTransfer $productSearchPreferencesTransfer, $idProductAttributesMetadata)
 {
     if ($productSearchPreferencesTransfer->getCompletionTerms() === true) {
         $this->createNewProductSearchAttributeMapRecord($idProductAttributesMetadata, PageIndexMap::COMPLETION_TERMS);
     }
     return $this;
 }