/** * @param int $iUserId * @param array $aEmails * @return bool */ public function updateSuggestTable($iUserId, $aEmails) { if (0 < count($aEmails)) { $aExistingEmails = array(); if ($this->oConnection->Execute($this->oCommandCreator->GetExistingEmails($iUserId, array_keys($aEmails)))) { $oRow = null; while (false !== ($oRow = $this->oConnection->GetNextRecord())) { if ($oRow->view_email && 0 < strlen($oRow->view_email)) { $aExistingEmails[] = $oRow->view_email; } } } $aNonExistingEmails = array_diff(array_keys($aEmails), $aExistingEmails); if (0 < count($aNonExistingEmails)) { foreach ($aEmails as $sEmail => $sName) { if (in_array($sEmail, $aNonExistingEmails)) { $this->oConnection->Execute($this->oCommandCreator->CreateAutoCreateContact($iUserId, $sEmail, $sName)); } } } $this->oConnection->Execute($this->oCommandCreator->UpdateContactFrequencyByEmails($iUserId, array_keys($aEmails))); } return true; }