public function run($request)
    {
        $email = $request->getVar('email');

        if (!$email) {
            echo 'You must supply an email parameter to this method.', PHP_EOL;
            exit;
        }

        $user = $this->ldapService->getUserByEmail($email);

        if (!$user) {
            echo sprintf('No user found in LDAP for email %s', $email), PHP_EOL;
            exit;
        }

        $member = $this->findOrCreateMember($user);

        // If member exists already, we're updating - otherwise we're creating
        if ($member->exists()) {
            $this->log(sprintf(
                'Updating existing Member %s: "%s" (ID: %s, SAM Account Name: %s)',
                $user['objectguid'],
                $member->getName(),
                $member->ID,
                $user['samaccountname']
            ));
        } else {
            $this->log(sprintf(
                'Creating new Member %s: "%s" (SAM Account Name: %s)',
                $user['objectguid'],
                $user['cn'],
                $user['samaccountname']
            ));
        }

        $this->log('User data returned from LDAP follows:');
        $this->log(var_export($user));

        try {
            $this->ldapService->updateMemberFromLDAP($member, $user);
            $this->log('Done!');
        } catch (Exception $e) {
            $this->log($e->getMessage());
        }
    }