public function getErrors($firstname, $lastname, $email, $username, $password, $about, $locationCityShort, $locationCityLong, $locationStateShort, $locationStateLong, $locationCountryShort, $locationCountryLong, $gender, $company, $isAvailableToHiring, $isUpdate = false, $validatePassword = true)
 {
     $validator = $this->validator;
     $errors = array();
     $firstnameValidation = $validator->validateValue($firstname, array(new Constraints\NotBlank(), new Constraints\Length(array('min' => 2, 'max' => 45))));
     if ($firstnameValidation->count()) {
         $errors[] = 'Por favor, digite corretamente o campo Nome';
     }
     $lastnameValidation = $validator->validateValue($lastname, array(new Constraints\NotBlank(), new Constraints\Length(array('min' => 2, 'max' => 45))));
     if ($lastnameValidation->count()) {
         $errors[] = 'Por favor, digite corretamente o campo Sobrenome';
     }
     $emailValidation = $validator->validateValue($email, array(new Constraints\NotBlank(), new Constraints\Email()));
     if ($emailValidation->count()) {
         $errors[] = 'Por favor, digite corretamente o campo Email';
     }
     $usernameValidation = $validator->validateValue($username, array(new Constraints\NotBlank(), new Constraints\Length(array('min' => 4, 'max' => 45)), new Constraints\Regex(array('pattern' => '/^[a-z0-9_]+$/i'))));
     if ($usernameValidation->count()) {
         $errors[] = 'Por favor, digite corretamente o campo Usuário';
     }
     if ($validatePassword) {
         $passwordValidation = $validator->validateValue($password, array(new Constraints\NotBlank(), new Constraints\Length(array('min' => 4, 'max' => 45))));
         if ($passwordValidation->count()) {
             $errors[] = 'Por favor, digite corretamente o campo Senha';
         }
     }
     $aboutValidation = $validator->validateValue($about, array(new Constraints\Length(array('max' => 140))));
     if (!$aboutValidation) {
         $errors[] = 'Por favor, digite corretamente o campo Sobre Você';
     }
     $locationCityShortValidation = $validator->validateValue($locationCityShort, array(new Constraints\NotBlank()));
     if ($locationCityShortValidation->count()) {
         $errors[] = 'Por favor, digite corretamente o campo Cidade (campo abreviado)';
     }
     $locationCityLongValidation = $validator->validateValue($locationCityLong, array(new Constraints\NotBlank(), new Constraints\Length(array('min' => 2, 'max' => 45))));
     if ($locationCityLongValidation->count()) {
         $errors[] = 'Por favor, digite corretamente o campo Cidade (campo longo)';
     }
     $locationStateShortValidation = $validator->validateValue($locationStateShort, array(new Constraints\NotBlank()));
     if ($locationStateShortValidation->count()) {
         $errors[] = 'Por favor, digite corretamente o campo Estado (campo abreviado)';
     }
     $locationStateLongValidation = $validator->validateValue($locationStateLong, array(new Constraints\NotBlank()));
     if ($locationStateLongValidation->count()) {
         $errors[] = 'Por favor, digite corretamente o campo Estado (campo longo)';
     }
     $locationCountryShortValidation = $validator->validateValue($locationCountryShort, array(new Constraints\NotBlank()));
     if ($locationCountryShortValidation->count()) {
         $errors[] = 'Por favor, digite corretamente o campo País (campo abreviado)';
     }
     $locationCountryLongValidation = $validator->validateValue($locationCountryLong, array(new Constraints\NotBlank()));
     if ($locationCountryLongValidation->count()) {
         $errors[] = 'Por favor, digite corretamente o campo País (campo longo)';
     }
     $genderValidation = $validator->validateValue($gender, array(new Constraints\NotBlank(), new Constraints\Choice(array(User::GENDER_MALE, User::GENDER_FEMALE))));
     if ($genderValidation->count()) {
         $errors[] = 'Por favor, digite corretamente o campo Sexo';
     }
     $companyValidation = $validator->validateValue($company, array(new Constraints\Length(array('max' => 140))));
     if (!$companyValidation) {
         $errors[] = 'Por favor, digite corretamente o campo Empresa';
     }
     $isAvailableToHiringValidation = $validator->validateValue($isAvailableToHiring, array(new Constraints\NotBlank(), new Constraints\Choice(array(0, 1))));
     if ($isAvailableToHiringValidation->count()) {
         $errors[] = 'Por favor, digite corretamente o campo "Está disponível para contratação?"';
     }
     if (!$isUpdate && $this->repository->hasGivenUsernameAndEmail($username, $email)) {
         $errors[] = 'O usuário ou email já existem.';
     }
     if ($errors) {
         return $errors;
     }
     return false;
 }