public function signUpWithEmail()
 {
     $reqData = $this->getDataFromRequestWithJsonFormat();
     if (!isset($reqData['Email']) || !Validation::isValidEmail($reqData['Email'])) {
         $this->sendResponse(array('success' => false, 'message' => 'Invalid email address!'));
     }
     $email = $reqData['Email'];
     $username = $email;
     if (!isset($reqData['Password']) || !Validation::isValidPassword($reqData['Password'])) {
         $this->sendResponse(array('success' => false, 'message' => 'Invalid password!'));
     }
     $password = $reqData['Password'];
     $user = UserRepository::findUserByUsernameOrEmail($username);
     if ($user) {
         $this->sendResponse(array('success' => false, 'message' => 'This user name has already been taken!'));
     }
     $user = UserRepository::findUserByUsernameOrEmail($email);
     if ($user) {
         $this->sendResponse(array('success' => false, 'message' => 'This email address has already been taken!'));
     }
     $user = array('Username' => $username, 'Email' => $email, 'Password' => $this->app->passHash->hashPassword($password), 'CreatedDate' => date('Y-m-d H:i:s'));
     $newId = UserRepository::save($user);
     if ($newId) {
         $user['UserId'] = $newId;
         $this->sendResponse(array('success' => true, 'user' => $user));
     } else {
         $this->sendOperationFailedResult('User');
     }
 }