/**
   * Effettua il login.
   *
   * @param request Richiesta con parametri per effettuare il login.
   */
  private final ResponseInt login(final RequestInt request) {
    Command command = commandFactory.getCommand("login", request);
    SimpleResponse response = (SimpleResponse) command.execute();

    if (response.getResponse()) {

      command = commandFactory.getCommand("getTipoUtente", request);

      ComplexResponse<AnonimoTO> response2 = (ComplexResponse<AnonimoTO>) command.execute();

      SessionHandler.currentUser = response2.getParameters().get(0).username;

      SessionHandler.currentUserType = response2.getParameters().get(0).tipo;

      SessionHandler.currentAgenziaId = response2.getParameters().get(0).agenziaId;

      // dispatcher.afterLogin();

      switch (response2.getParameters().get(0).tipo) {
        case "operatore":
          SessionHandler.currentStage.close();
          dispatcher.afterLogin("PannelloOperatore");
          break;
        case "manager":
          SessionHandler.currentStage.close();
          dispatcher.afterLogin("PannelloManager");
          break;
        case "admin":
          SessionHandler.currentStage.close();
          dispatcher.afterLogin("PannelloAmministratore");
          break;
        default:
      }
    }

    return response;
  }