public function run($step = 'add')
    {
        $this->setLogs($step, 'step');
        switch ($step) {
            // Step 1: Validate and add a contact to a queue for the next file for the client.
            case 'add':
                $this->getFieldValues();
                $this->fileEntitySelect(true);
                $this->fileEntityRefreshSettings();
                $this->addContactToQueue();
                break;

            // Step 3: Build the file (if a good time), performing a second validation on each contact.
            case 'build':
                if ($this->test) {
                    $this->getFieldValues();
                }
                $this->fileEntitySelect();
                $this->evaluateSchedule(true);
                $this->fileEntityRefreshSettings();
                $this->fileBuild();
                break;

            // Step 4: Perform file send operations, if any are configured.
            case 'send':
                $this->fileEntitySelect(false, File::STATUS_READY);
                $this->evaluateSchedule(true);
                $this->fileSend();
                break;
        }

        return $this;
    }
public function run($step = 'add')
    {
        $this->setLogs($step, 'step');
        switch ($step) {
            // Step 1: Validate and add a contact to a queue for the next file for the client.
            case 'add':
                $this->getFieldValues();
                $this->fileEntitySelect(true);
                $this->fileEntityRefreshSettings();
                $this->addContactToQueue();
                break;

            // Step 3: Build the file (if a good time), performing a second validation on each contact.
            case 'build':
                if ($this->test) {
                    $this->getFieldValues();
                }
                $this->fileEntitySelect();
                $this->evaluateSchedule(true);
                $this->fileEntityRefreshSettings();
                $this->fileBuild();
                break;

            // Step 4: Perform file send operations, if any are configured.
            case 'send':
                $this->fileEntitySelect(false, File::STATUS_READY);
                $this->evaluateSchedule(true);
                $this->fileSend();
                break;
        }

        return $this;
    }
public function run ( $ step = 'add' ) { $ this -> setLogs ( $ step , 'step' ) ; switch ( $ step ) { // Step 1: Validate and add a contact to a queue for the next file for the client. case 'add' : $ this -> getFieldValues ( ) ; $ this -> fileEntitySelect ( true ) ; $ this -> fileEntityRefreshSettings ( ) ; $ this -> addContactToQueue ( ) ; break ; // Step 3: Build the file (if a good time), performing a second validation on each contact. case 'build' : if ( $ this -> test ) { $ this -> getFieldValues ( ) ; } $ this -> fileEntitySelect ( ) ; $ this -> evaluateSchedule ( true ) ; $ this -> fileEntityRefreshSettings ( ) ; $ this -> fileBuild ( ) ; break ; // Step 4: Perform file send operations, if any are configured. case 'send' : $ this -> fileEntitySelect ( false , File :: STATUS_READY ) ; $ this -> evaluateSchedule ( true ) ; $ this -> fileSend ( ) ; break ; } return $ this ; }
These steps can occur in different sessions.

@param string $step

@return $this

@throws ContactClientException
These steps can occur in different sessions .