/**
   * @param recorrido
   * @param ruta
   * @param listUsuarioRecorrido
   */
  private static void notificarInvitacionARecorrdo(
      Recorrido recorrido, Ruta ruta, List<UsuarioXRecorrido> listUsuarioRecorrido) {
    User usuarioSession = Application.getLocalUser(session());
    String usuarioInvita = usuarioSession.name;

    String nombreRecorrido = recorrido.getNombre();
    String lugarInicio = ruta.getLugarInicio();
    String lugarFin = ruta.getLugarFin();
    String descripcion = recorrido.getDescripcion();

    List<String> emailsInvitados = new ArrayList<String>();

    for (UsuarioXRecorrido usuarioRecorrido : listUsuarioRecorrido) {
      String emailPosible = usuarioRecorrido.getUsuario().email;
      if (emailPosible != null && !emailPosible.isEmpty()) {
        emailsInvitados.add(emailPosible);
      }
    }

    // Si alguno de los invitados tiene email
    if (emailsInvitados.size() > 0) {
      // Recorrido Frecuente
      if (recorrido.getTipo() == 0) {
        String horaFrecuente = recorrido.getHoraFrecuente();
        String diaFrecuente = recorrido.getDiaFrecuente();

        ICatalogoNotificaciones icn = CatalogoNotificaciones.getICatalogoInstance();
        icn.notificacionInvitacionRecorridoFrecuente(
            usuarioInvita,
            nombreRecorrido,
            lugarInicio,
            lugarFin,
            descripcion,
            horaFrecuente,
            diaFrecuente,
            emailsInvitados);

      }
      // Recorrido Recreacion
      else if (recorrido.getTipo() == 1) {
        SimpleDateFormat sdf = new SimpleDateFormat("dd MMM, yyyy");

        String horaRecreacion = recorrido.getHoraFrecuente();
        String fechaInicio = sdf.format(ruta.getFechaInicioRuta());
        String fechaFin = sdf.format(ruta.getFechaFinRuta());

        ICatalogoNotificaciones icn = CatalogoNotificaciones.getICatalogoInstance();
        icn.notificacionInvitacionRecorridoRecreacion(
            usuarioInvita,
            nombreRecorrido,
            lugarInicio,
            lugarFin,
            descripcion,
            horaRecreacion,
            fechaInicio,
            fechaFin,
            emailsInvitados);
      }
    }
  }
  /**
   * @param recorrido
   * @param seUnio
   */
  private static void notificarCambioParticipacionRecorrido(Recorrido recorrido, boolean seUnio) {
    EstadoParticipacion estadoParticipacion =
        seUnio
            ? ICatalogoNotificaciones.EstadoParticipacion.UNIDO_A_RECORRIDO
            : ICatalogoNotificaciones.EstadoParticipacion.RETIRADO_DE_RECORRIDO;
    User usuarioSession = Application.getLocalUser(session());

    Ruta ruta = recorrido.getLstRuta().get(0);

    String emailUsuario = usuarioSession.email;
    String nombreUsuario = usuarioSession.name;

    String nombreRecorrido = recorrido.getNombre();
    String lugarInicio = ruta.getLugarInicio();
    String lugarFin = ruta.getLugarFin();
    String descripcion = recorrido.getDescripcion();

    if (emailUsuario != null && !emailUsuario.isEmpty()) {
      // Recorrido Frecuente
      if (recorrido.getTipo() == 0) {
        String horaFrecuente = recorrido.getHoraFrecuente();
        String diaFrecuente = recorrido.getDiaFrecuente();

        ICatalogoNotificaciones icn = CatalogoNotificaciones.getICatalogoInstance();
        icn.notificacionCambioParticipacionRecorridoFrecuente(
            estadoParticipacion,
            emailUsuario,
            nombreUsuario,
            nombreRecorrido,
            lugarInicio,
            lugarFin,
            descripcion,
            horaFrecuente,
            diaFrecuente);

      }
      // Recorrido Recreacion
      else if (recorrido.getTipo() == 1) {
        SimpleDateFormat sdf = new SimpleDateFormat("dd MMM, yyyy");

        String horaRecreacion = recorrido.getHoraFrecuente();
        String fechaInicio = sdf.format(ruta.getFechaInicioRuta());
        String fechaFin = sdf.format(ruta.getFechaFinRuta());

        ICatalogoNotificaciones icn = CatalogoNotificaciones.getICatalogoInstance();
        icn.notificacionCambioParticipacionRecorridoRecreacion(
            estadoParticipacion,
            emailUsuario,
            nombreUsuario,
            nombreRecorrido,
            lugarInicio,
            lugarFin,
            descripcion,
            horaRecreacion,
            fechaInicio,
            fechaFin);
      }
    }
  }