@RequestMapping(
     value = {"/workspace/general/list-another-application"},
     method = RequestMethod.GET)
 public String listAnotherApplicationGeneralPage(ModelMap modelMap, Principal principal) {
   modelMap.addAttribute("listApplication", applicationService.applicationEntityList());
   if (null != principal) {
     modelMap.addAttribute("userId", userService.findByUsername(principal.getName()).getIdUser());
   }
   return "pages/general/another-application/index";
 }
 @RequestMapping(
     value = {"/workspace/user/another-application-cancel-participant"},
     method = RequestMethod.GET)
 public String cancelAnotherApplicationToParticipate(
     ModelMap modelMap, Principal principal, @RequestParam String idApplication) {
   ApplicationEntity applicationEntity = applicationService.findById(idApplication);
   if (null != idApplication && null != applicationEntity) {
     ApplicationUserForParticipationEntity app =
         applicationService.cancelAnotherApplicationToParticipate(
             userService.findByUsername(principal.getName()).getIdUser(), idApplication);
     app.setStatusApplication(ProjectConstantsEnum.CANCEL_USER_REQUEST.name());
     applicationUserForParticipationService.update(app);
     modelMap.addAttribute("textPage", ActionMessage.SUCCESS_CANCEL_REGISTER_ON_APPLICATION);
     return "pages/general/success-template-page";
   } else {
     modelMap.addAttribute("textPage", ActionMessage.ERROR_ACTION);
     return "pages/general/success-template-page";
   }
 }
 @RequestMapping(
     value = {"/workspace/user/another-application-user-list"},
     method = RequestMethod.GET)
 public String listOfUserApplication(ModelMap modelMap, Principal principal) {
   modelMap.addAttribute(
       "listApplication",
       applicationService.listOfUserEvents(
           userService.findByUsername(principal.getName()).getIdUser()));
   return "pages/user/another-application/another-application-user-list";
 }
  @RequestMapping(
      value = {"/workspace/user/another-application-send-to-participate"},
      method = RequestMethod.GET)
  public String sendAnotherApplicationToParticipate(
      ModelMap modelMap, @RequestParam String idApplication, Principal principal) {
    ApplicationEntity applicationEntity = applicationService.findById(idApplication);
    if (null != idApplication && null != applicationEntity) {
      if ("true".equals(applicationEntity.getUserAttachFile())) {
        modelMap.addAttribute("idApplication", idApplication);
        UserEntity userEntity = userService.findByUsername(principal.getName());
        ApplicationUserForParticipationEntity activityApplication =
            applicationService.checkIsExistsActiveApplicationUserForParticipation(
                idApplication, userEntity, ProjectConstantsEnum.SEND_REQUEST.name());
        if (null != activityApplication) {
          modelMap.addAttribute("activityApplication", activityApplication);
        }
        return "pages/user/another-application/another-application-send";
      } else {
        ApplicationUserForParticipationEntity appUserForParticipationEntity =
            new ApplicationUserForParticipationEntity();
        appUserForParticipationEntity.setIdApplication(applicationEntity.getIdApplication());
        appUserForParticipationEntity.setDateAndTimeSendApplication(Utils.getTimestamp());
        appUserForParticipationEntity.setIdApplicationUserForParticipation(
            Utils.generateIdentifier());
        appUserForParticipationEntity.setIdUser(
            userService.findByUsername(principal.getName()).getIdUser());
        appUserForParticipationEntity.setStatusApplication(
            ProjectConstantsEnum.APPROVED_REQUEST.name());
        appUserForParticipationEntity.setApplicationEntity(applicationEntity);
        // applicationUserForParticipationService.save(appUserForParticipationEntity);

        Set<ApplicationUserForParticipationEntity> applicationUserForParticipationEntities;
        if (null == applicationEntity.getApplicationUserForParticipationEntities()) {
          applicationUserForParticipationEntities =
              new HashSet<ApplicationUserForParticipationEntity>();
          applicationUserForParticipationEntities.add(appUserForParticipationEntity);
        } else {
          applicationUserForParticipationEntities =
              applicationEntity.getApplicationUserForParticipationEntities();
          applicationUserForParticipationEntities.add(appUserForParticipationEntity);
        }
        applicationEntity.setApplicationUserForParticipationEntities(
            applicationUserForParticipationEntities);
        applicationService.update(applicationEntity);

        UserEntity userEntity = userService.findByUsername(principal.getName());
        Set<ApplicationEntity> applicationEntities;
        if (null == userEntity.getApplicationEntities()) {
          applicationEntities = new HashSet<ApplicationEntity>();
          applicationEntities.add(applicationEntity);
        } else {
          applicationEntities = userEntity.getApplicationEntities();
          applicationEntities.add(applicationEntity);
        }
        userEntity.setApplicationEntities(applicationEntities);
        userService.update(userEntity);

        modelMap.addAttribute("textPage", ActionMessage.SUCCESS_REGISTER_ON_APPLICATION);
        return "pages/general/success-template-page";
      }
    } else {
      modelMap.addAttribute("textPage", ActionMessage.ERROR_ACTION);
      return "pages/general/success-template-page";
    }
  }
  @RequestMapping(
      value = {"/workspace/user/another-application-send-to-participate-attach"},
      method = RequestMethod.POST)
  public String singleFileUpload(
      @Valid final File fileBucket,
      BindingResult result,
      ModelMap modelMap,
      Principal principal,
      @RequestParam String idApp)
      throws IOException {

    ApplicationEntity applicationEntity = applicationService.findById(idApp);
    if (null != idApp && null != applicationEntity) {
      ApplicationUserForParticipationEntity appUserForParticipationEntity =
          new ApplicationUserForParticipationEntity();
      appUserForParticipationEntity.setIdApplication(applicationEntity.getIdApplication());
      appUserForParticipationEntity.setDateAndTimeSendApplication(Utils.getTimestamp());
      appUserForParticipationEntity.setIdApplicationUserForParticipation(
          Utils.generateIdentifier());
      appUserForParticipationEntity.setIdUser(
          userService.findByUsername(principal.getName()).getIdUser());
      appUserForParticipationEntity.setStatusApplication(ProjectConstantsEnum.SEND_REQUEST.name());
      appUserForParticipationEntity.setApplicationEntity(applicationEntity);
      // applicationUserForParticipationService.save(appUserForParticipationEntity);

      Set<ApplicationUserForParticipationEntity> applicationUserForParticipationEntities;
      if (null == applicationEntity.getApplicationUserForParticipationEntities()) {
        applicationUserForParticipationEntities =
            new HashSet<ApplicationUserForParticipationEntity>();
        applicationUserForParticipationEntities.add(appUserForParticipationEntity);
      } else {
        applicationUserForParticipationEntities =
            applicationEntity.getApplicationUserForParticipationEntities();
        applicationUserForParticipationEntities.add(appUserForParticipationEntity);
      }
      applicationEntity.setApplicationUserForParticipationEntities(
          applicationUserForParticipationEntities);
      applicationService.update(applicationEntity);

      UserEntity userEntity = userService.findByUsername(principal.getName());
      Set<ApplicationEntity> applicationEntities;
      if (null == userEntity.getApplicationEntities()) {
        applicationEntities = new HashSet<ApplicationEntity>();
        applicationEntities.add(applicationEntity);
      } else {
        applicationEntities = userEntity.getApplicationEntities();
        applicationEntities.add(applicationEntity);
      }
      userEntity.setApplicationEntities(applicationEntities);
      DocumentEntity documentEntity = new DocumentEntity();
      documentEntity.setIdDocument(
          appUserForParticipationEntity.getIdApplicationUserForParticipation());
      documentEntity.setPathToTheFileSystem(
          environment.getProperty("upload.file.location")
              + fileBucket.getFile().getOriginalFilename());
      appUserForParticipationEntity.setAttachDocumentFile(documentEntity);
      applicationUserForParticipationService.update(appUserForParticipationEntity);

      // Now do something with file...
      FileCopyUtils.copy(
          fileBucket.getFile().getBytes(),
          new java.io.File(
              environment.getProperty("upload.file.location")
                  + fileBucket.getFile().getOriginalFilename()));
      userService.update(userEntity);

      modelMap.addAttribute("textPage", ActionMessage.SUCCESS_SEND_APPLICATION_FOR_MEMBERSHIP);
      return "pages/general/success-template-page";
    } else {
      modelMap.addAttribute("textPage", ActionMessage.ERROR_ACTION);
      return "pages/general/success-template-page";
    }
  }