Ejemplo n.º 1
0
  @Override
  public Boolean launchSession(SessionExamen session, String link) {
    List<DossierSession> dossierSessions =
        dossierSessionRepos.findBySessionExamenId(session.getId());
    for (DossierSession dossiersession : dossierSessions) {
      Dossier dossier = dossierRepos.findOne(dossiersession.getDossier().getId());
      String token =
          Base64.encode(
              dossiersession.getDossier().getGeneratedNumDossier() + "" + (new Date()).toString());
      token = token.replace("=", "E");
      dossiersession.setGeneratedConvocationPDFPath(token);

      DossierHistoric dossierHistoric = new DossierHistoric();
      dossierHistoric.setStatus(dossier.getStatus());
      dossierHistoric.setCreateDate(new Date());
      dossierHistoric.setDossier(dossier);
      dossierHistoricRepo.save(dossierHistoric);

      dossier.setStatus(DossierStatus.INVITED_TO_TEST);

      dossierRepos.save(dossier);
      dossierSessionRepos.save(dossiersession);

      if (dossier.getNiveauEtude().getEmailConvocation() == null
          || !dossier.getNiveauEtude().getEmailConvocation()) continue;

      // preparing the email data
      Map<String, Object> params = new HashMap<String, Object>();
      params.put("gender", dossier.getOwner().getGender().toString());
      params.put("lastname", dossier.getOwner().getLastName());
      params.put("firstname", dossier.getOwner().getFirstName());
      params.put("nomEnfant", dossier.getCandidat().getLastname());
      params.put("prenomEnfant", dossier.getCandidat().getFirstname());
      params.put("refdossier", dossier.getGeneratedNumDossier());
      params.put("link", link + "resource/convocation?number=" + token);

      try {
        EmailDTO email =
            emailService.populateEmail(
                EmailType.CONVOCATED_FOR_TEST,
                dossier.getOwner().getEmail(),
                sender,
                params,
                "",
                "");
        emailService.prepare(email);

        InboxMessage message = new InboxMessage();
        message.setParentUser(dossier.getOwner());
        message.setSubject(email.getSubject());
        message.setContent(email.getMessage());
        message.setMsgDate(new Date());
        message.setMsgStatus(InboxMessageStatus.UNREAD);
        inboxMessageRepos.save(message);
      } catch (Exception e) {
        e.printStackTrace();
        return false;
      }
    }
    session = sessionExamenRepos.findOne(session.getId());
    session.setStatus(SessionStatus.CLOSED);
    sessionExamenRepos.save(session);
    return true;
  }
Ejemplo n.º 2
0
  @Override
  public void cancelOrDeleteSession(Long sessionId) {
    SessionExamen session = sessionExamenRepos.findOne(sessionId);
    if (session.getStatus() == SessionStatus.CREATED
        || session.getStatus() == SessionStatus.CANCELED) {
      List<SessionNiveauEtude> matieres = sessionExamenNERepos.findBySessionExamenId(sessionId);
      sessionExamenNERepos.delete(matieres);
      sessionExamenRepos.delete(session);
    } else if (session.getStatus() == SessionStatus.OPEN) {
      List<DossierSession> dossierSessions =
          dossierSessionRepos.findBySessionExamenId(session.getId());
      for (DossierSession ds : dossierSessions) {
        Dossier dossier = dossierRepos.findOne(ds.getDossier().getId());

        DossierHistoric dossierHistoric = new DossierHistoric();
        dossierHistoric.setStatus(dossier.getStatus());
        dossierHistoric.setCreateDate(new Date());
        dossierHistoric.setDossier(dossier);
        dossierHistoricRepo.save(dossierHistoric);

        dossier.setStatus(DossierStatus.ACCEPTED_FOR_TEST);
        dossierRepos.save(dossier);
      }

      dossierSessionRepos.delete(dossierSessions);

      session.setStatus(SessionStatus.CANCELED);
      sessionExamenRepos.save(session);
    } else if (session.getStatus() == SessionStatus.CLOSED) {
      SimpleDateFormat format = new SimpleDateFormat(GlobalParameters.DATE_FORMAT);
      List<DossierSession> dossierSessions =
          dossierSessionRepos.findBySessionExamenId(session.getId());
      for (DossierSession dossiersession : dossierSessions) {
        Dossier dossier = dossiersession.getDossier();

        DossierHistoric dossierHistoric = new DossierHistoric();
        dossierHistoric.setStatus(dossier.getStatus());
        dossierHistoric.setCreateDate(new Date());
        dossierHistoric.setDossier(dossier);
        dossierHistoricRepo.save(dossierHistoric);

        dossier.setStatus(DossierStatus.ACCEPTED_FOR_TEST);
        dossierRepos.save(dossier);

        Map<String, Object> params = new HashMap<String, Object>();
        if (dossiersession.getSessionExamen().getDateSession() != null) {
          params.put(
              "dateSession", format.format(dossiersession.getSessionExamen().getDateSession()));
        } else {
          params.put("dateSession", "");
        }

        params.put("sessionNom", dossiersession.getSessionExamen().getNom());
        params.put("gender", dossier.getOwner().getGender().toString());
        params.put("lastname", dossier.getOwner().getLastName());
        params.put("firstname", dossier.getOwner().getFirstName());
        params.put("nomEnfant", dossier.getCandidat().getLastname());
        params.put("prenomEnfant", dossier.getCandidat().getFirstname());
        params.put("refdossier", dossier.getGeneratedNumDossier());

        try {
          EmailDTO email =
              emailService.populateEmail(
                  EmailType.SESSION_CANCELED,
                  dossier.getOwner().getEmail(),
                  sender,
                  params,
                  "",
                  "");
          emailService.prepare(email);

          InboxMessage message = new InboxMessage();
          message.setParentUser(dossier.getOwner());
          message.setSubject(email.getSubject());
          message.setContent(email.getMessage());
          message.setMsgDate(new Date());
          message.setMsgStatus(InboxMessageStatus.UNREAD);
          inboxMessageRepos.save(message);
        } catch (Exception e) {
          e.printStackTrace();
        }
      }

      dossierSessionRepos.delete(dossierSessions);

      session.setStatus(SessionStatus.CANCELED);
      sessionExamenRepos.save(session);
    }
  }