/**
  * @param RecipientInterface $recipient
  * @param Salutation         $salutation
  *
  * @return bool
  */
 public function accept(RecipientInterface $recipient, Salutation $salutation)
 {
     global $container;
     $requiredFields = $salutation->getRequiredFieldsFilter();
     if (!$salutation->getEnableRequiredFieldsFilter() || empty($requiredFields)) {
         return true;
     }
     $details = $recipient->getDetails();
     foreach ($requiredFields as $requiredField) {
         if (empty($details[$requiredField])) {
             /** @var SynonymizerService $synonymizer */
             $synonymizer = $container['avisota.recipient.synonymizer'];
             $synonyms = $synonymizer->findSynonyms($requiredField);
             $stillEmpty = true;
             if ($synonyms) {
                 foreach ($synonyms as $synonym) {
                     if (!empty($details[$synonym])) {
                         $stillEmpty = false;
                         break;
                     }
                 }
             }
             if ($stillEmpty) {
                 return false;
             }
         }
     }
     return true;
 }
 /**
  * @param RecipientInterface $recipient
  * @param Salutation         $salutation
  *
  * @return bool
  */
 public function accept(RecipientInterface $recipient, Salutation $salutation)
 {
     global $container;
     $fieldValue = $salutation->getGenderFilter();
     if (!$salutation->getEnableGenderFilter() || empty($fieldValue)) {
         return true;
     }
     $details = $recipient->getDetails();
     $fieldName = 'gender';
     if (isset($details[$fieldName]) && $fieldValue == $details[$fieldName]) {
         return true;
     }
     /** @var SynonymizerService $synonymizer */
     $synonymizer = $container['avisota.recipient.synonymizer'];
     $synonyms = $synonymizer->findSynonyms('gender');
     // try synonyms
     if ($synonyms) {
         foreach ($synonyms as $synonym) {
             if (isset($details[$synonym]) && $fieldValue == $details[$synonym]) {
                 return true;
             }
         }
     }
     return false;
 }