public function register()
 {
     $request = Application::getRequest();
     $user = new User(Application::getRequest()->all());
     $user->file = $request->file('filename');
     $user->password_confirmed = $request->get('password_confirmed');
     $errors = Validator::validate($user);
     if (UserService::hasUserWithEmail($user->email)) {
         $errors[] = UserService::ERROR_USER_EMAIL_DUPLICATE;
     }
     if (empty($errors)) {
         if ($user->insert()) {
             if (UserService::saveUploadedFile($user)) {
                 $user->filename = $user->file->getClientOriginalName();
                 $user->update();
             }
             UserService::setCurrentUser($user);
             return Response::redirectUrl('/register_done');
         } else {
             $errors[] = UserService::ERROR_UNEXPECTED;
         }
     }
     View::share('user', $user);
     View::share('errors', $errors);
     return $this->registerForm();
 }