public function execute(\Magento\Framework\Event\Observer $observer)
{
if ($this->scopeConfig->isSetFlag(self::REDIRECT_SETTINGS_CONFIG_XML_FLAG)) {
$layer = $this->layerResolver->get();
$layerState = $layer->getState();
if (count($layerState->getFilters()) === 0) {
$productCollection = $layer->getProductCollection();
if ($productCollection->getCurPage() === 1 && $productCollection->getSize() === 1) {
/** @var \Magento\Catalog\Api\Data\ProductInterface $product */
$product = $productCollection->getFirstItem();
if ($product->getId()) {
$this->addRedirectMessage($product);
$observer->getControllerAction()->getResponse()->setRedirect($product->getProductUrl());
}
}
}
}
}