//Envia el correo notificando calificacion pendiente al pasajero
 public void CorreoCalificacionConductor(Viaje pViaje)
 {
     //inicializa los parametros de envio del correo
     List<string> destinatarios = new List<string> { pViaje.Conductor.Email };
     string asunto = "Carpooling Colombia - Tienes un viaje por calificar‏";
     string mensaje = "Por favor califica a los pasajeros que viajaron contigo en el viaje con destino a la ciudad de: " + pViaje.GetCiudadDestino().Direccion;
     mensaje += "<br/><br/>Gracias por hacer parte de Carpooling Colombia.";
     EnviarCorreoPlano(CuentaEmailAdministrador, destinatarios, null, null, asunto, mensaje, true);
 }
 public List<ItemTablaPregunta> CreateItemPregunta(Viaje pViaje)
 {
     return pViaje.Preguntas.Select(p => new ItemTablaPregunta()
      {
          IdPregunta = p.IdPregunta,
          NombreCreador = p.CreadorPregunta.ObtenerNombreApellidos(),
          TextoPregunta = p.TextoPregunta,
          TextoRespuesta = (String.IsNullOrWhiteSpace(p.TextoRespuesta))?"Sin respuesta":p.TextoRespuesta
      }).ToList();
 }
Exemplo n.º 3
0
        private void Paso2Viaje(Viaje viajeEditable)
        {
            txbCiudadOrigen.Text = viajeEditable.GetCiudadOrigen().Direccion;
            txbCiudadDestino.Text = viajeEditable.GetCiudadDestino().Direccion;

            txbCupos.Text = "0";
            txbFechaPartida.Text = viajeEditable.FechaHoraPartida.ToString("MM/dd/yyyy");
            txbHora.Text = viajeEditable.FechaHoraPartida.ToString("hh:mm tt").Replace(".","");
            txbTarifa.Text = Convert.ToInt32(viajeEditable.AporteEconomico).ToString();
            txbCupos.Text = viajeEditable.TrayectosViaje.First().CuposDisponibles.ToString();
        }
        //Envia el correo notificando calificacion pendiente al conductor
        public void CorreoCalificacionParticipante(Viaje pViaje, Usuario pUsuario)
        {
            //inicializa los parametros de envio del correo
            var destinatarios = new List<string> { pUsuario.Email };

            //TODO probar que el trayecto venga dentro de la solicitud y no solo el id del trayecto
            string asunto = "Carpooling Colombia - Tienes un viaje por calificar";

            string mensaje = "Por favor califica el viaje con destino a la ciudad de: " + pViaje.GetCiudadDestino().Direccion + " , en el que participaste.";
            mensaje += "<br/><br/>Gracias por hacer parte de Carpooling Colombia.";
            EnviarCorreoPlano(CuentaEmailAdministrador, destinatarios, null, null, asunto, mensaje, true);
        }
 protected void AceptarPopUpCancelacion(object sender, EventArgs e)
 {
     if (ViajeDetalle == null) ViajeDetalle = (Viaje) Session["ViajeSeleccionado"];
     mpeConfirmarCancelacion.Hide();
     if (AdministradorViajes.Instancia.CancelarViaje(ViajeDetalle))
     {
         popUpConfirmacionCancelacion.MensajePrincipal =
             "Ya se ha cancelado tu viaje, de tener participantes ellos seran informados";
         popUpConfirmacionCancelacion.TituloPopUp = "Transaccion exitosa";
     }
     else
     {
         popUpConfirmacionCancelacion.MensajePrincipal =
             "No se ha podido cancelar tu viaje, Lo sentimos.";
         popUpConfirmacionCancelacion.TituloPopUp = "Transaccion fallida";
     }
     popUpConfirmacionCancelacion.MostrarPopUp();
 }
        public bool AceparSolicitud(Viaje pViaje, Solicitud pSolicitud)
        {
            var trayectoSeleccionado = pViaje.TrayectosViaje.Find(t => t.IdTrayecto == pSolicitud.IdTrayecto);

            IEnumerable<Trayecto> trayectosModificar = (trayectoSeleccionado.TrayectoSimple)
                                                           ? DeterminarTrayectosAfectosTryS(pViaje, trayectoSeleccionado)
                                                           : DeterminarTrayectosAfectosTryC(pViaje, trayectoSeleccionado);
            trayectosModificar.ToList().ForEach(t => t.CuposDisponibles -= pSolicitud.CuposSolicitados);
            trayectoSeleccionado.CuposDisponibles -= pSolicitud.CuposSolicitados;
            var trayectosSinModificar = pViaje.TrayectosViaje.Where(
                trayecto => trayectosModificar.ToList().All(t => t.IdTrayecto != trayecto.IdTrayecto)).ToList();

            pViaje.TrayectosViaje.Clear();
            pViaje.TrayectosViaje.AddRange(trayectosSinModificar.ToList());
            pViaje.TrayectosViaje.AddRange(trayectosModificar);
            pSolicitud.Estado = Solicitud.SolicitudEstado.Aprobada;
            var result = TrayectoDao.Instancia.ActualizarCuposAprobados(pViaje.TrayectosViaje, pSolicitud);
            if(result)
                AdministradorCorreosElectronicos.Instancia.CorreoSolicitudAprobada(pSolicitud);
            return result;
        }
        public List<ItemTablaCalificacion> CrearItemCalificacion(Viaje pViaje, Usuario pUsuarioApp)
        {
            var listaResultados = new List<ItemTablaCalificacion>();
            List<Calificacion> listaCalificaciones;

            if (pViaje.Calificaciones != null && pViaje.Calificaciones.Count > 0)
            {
                listaCalificaciones = pViaje.Calificaciones.Where(c => c.IdUsuarioEvaluador == pUsuarioApp.IdUsuario && c.FechaRealizacion == null).ToList();
                listaResultados = listaCalificaciones.Select(c => new ItemTablaCalificacion()
                    {
                        CiudadDestino = pViaje.GetCiudadDestino().Direccion,
                        CiudadOrigen = pViaje.GetCiudadOrigen().Direccion,
                        IdEvaluador = c.IdUsuarioEvaluador,
                        IdEvaluado = c.IdUsuarioEvaluado,
                        NombreParticipante = pViaje.GetPasajeros().Find(p => p.IdUsuario == c.IdUsuarioEvaluado).ObtenerNombreApellidos(),
                        Reputacion = pUsuarioApp.Reputacion != null ? pUsuarioApp.Reputacion.ToString() : "Sin reputación",
                        IdCalificacion = c.IdCalificacion
                    }).ToList();
            }
            return listaResultados;
        }
Exemplo n.º 8
0
        public long ActualizarParametrosViaje(Viaje pViaje, CARPOOLEntities pContext)
        {
            var viajeEditableDb = from v in pContext.VIAJE
                                  where v.ID_VIAJE == pViaje.IdViaje
                                  select v;
            if(viajeEditableDb.Any())
            {
                var viajeEncontrado = (VIAJE) viajeEditableDb.First();
                viajeEncontrado.FECHA_HORA_PARTIDA = pViaje.FechaHoraPartida;
                viajeEncontrado.APORTE_ECONOMICO = pViaje.AporteEconomico;

                TrayectoDao.Instancia.BorrarTrayecto(viajeEncontrado.TRAYECTO.ToList(), pContext, false);

                foreach (var trayecto in pViaje.TrayectosViaje)
                {
                    var trayectoDb = ToDataEntity.Instancia.ToTrayecto(trayecto);
                    viajeEncontrado.TRAYECTO.Add(trayectoDb);
                }

                if (ConfirmarCambios(pContext) > 0)
                    return viajeEncontrado.ID_VIAJE;
            }
            return 0;
        }
 //Busca la lista de trayectos que deben ser modificados en terminos de cupos, dado que se acepte una
 //solicitud para un trayecto compuesto
 private List<Trayecto> DeterminarTrayectosAfectosTryC(Viaje pViaje, Trayecto pTrayectoSeleccionado)
 {
     var trayectoAlgoritmoSimple = DeterminarTrayectosAfectosTryS(pViaje, pTrayectoSeleccionado);
     var trayectosPendientes = pViaje.TrayectosViaje.Except(trayectoAlgoritmoSimple);
     var iParadaOrigen = pTrayectoSeleccionado.ParadaOrigen.NumeroParada;
     var iParadaDestino = pTrayectoSeleccionado.ParadaDestino.NumeroParada;
     var listResult = (from trayectoViaje in trayectosPendientes
                       let tempOrigen = trayectoViaje.ParadaOrigen.NumeroParada
                       let tempDestino = trayectoViaje.ParadaDestino.NumeroParada
                       where (tempOrigen > iParadaOrigen && tempOrigen < iParadaDestino) ||
                             (tempDestino > iParadaOrigen && tempDestino < iParadaDestino)
                       select trayectoViaje).ToList();
     listResult.AddRange(trayectoAlgoritmoSimple);
     return listResult;
 }
 //Busca la lista de trayectos que deben ser modificados en terminos de cupos, dado que se acepte una
 //solicitud para un trayecto simple
 private static List<Trayecto> DeterminarTrayectosAfectosTryS(Viaje pViaje, Trayecto pTrayectoSeleccionado)
 {
     var iParadaOrigen = pTrayectoSeleccionado.ParadaOrigen.NumeroParada;
     var iParadaDestino = pTrayectoSeleccionado.ParadaDestino.NumeroParada;
     return (from trayectoViaje in pViaje.TrayectosViaje
             let tempOrigen = trayectoViaje.ParadaOrigen.NumeroParada
             let tempDestino = trayectoViaje.ParadaDestino.NumeroParada
             where (iParadaOrigen > tempOrigen && iParadaOrigen < tempDestino) ||
                   (iParadaDestino > tempOrigen && iParadaDestino < tempDestino)
             select trayectoViaje).ToList();
 }
        protected void Page_Load(object sender, EventArgs e)
        {
            this.popUpCalificar.OnContinuarClick += new EventHandler(PopupCalificar_OnContinuarClick);

            string idViajeStr = Request.QueryString["idViajeDetalle"];
            try
            {
                if (idViajeStr == null)
                    throw new Exception("Por favor re-ingrese a la aplicacón, su tiempo de sesiòn ha expirado.");
                UsuarioConectado = (Usuario) Session["usuario"];
                IdViaje = Convert.ToInt64(idViajeStr);
                ViajeDetalle = AdministradorViajes.Instancia.VerDetalleViaje(IdViaje);
                Session["ViajeSeleccionado"] = ViajeDetalle;
                if(ViajeDetalle.Estado == Viaje.ViajeEstado.Realizado)
                {
                    btnEditar.Visible = false;
                    btnCancelarViaje.Visible = false;
                }

                PintarDetalleViaje();
                PintarSolicitudes();
                PintarPreguntas();
                PintarCalificaciones();
                CrearHiddenFields();
            }
            catch (Exception ex)
            {
                var error = new ErrorAplicacion {TituloError = ex.Message, DetalleError = ex.StackTrace};
                ((Global) Context.ApplicationInstance).ErrorExcepcion = error;
                Response.Redirect("~/Front/Error.aspx");
            }
        }
        protected void dataListCalificaciones_ItemCommand(object source, DataListCommandEventArgs e)
        {
            if (e.CommandName.ToLower().Equals("calificar"))
            {
                popUpCalificar.TituloPopUp = "Calificar a " + ((Label)e.Item.FindControl("lblParticipanteCalificar")).Text;
                if (ViajeDetalle == null) ViajeDetalle = (Viaje)Session["ViajeSeleccionado"];

                var calificacionActual = new Calificacion()
                    {
                        IdCalificacion = Convert.ToInt64(((LinkButton)e.Item.FindControl("btnCalificarParticipante")).CommandArgument),
                        IdUsuarioEvaluado = ((HiddenField)e.Item.FindControl("hdfIdEvaluado")).Value,
                        IdUsuarioEvaluador = ((HiddenField)e.Item.FindControl("hdfIdEvaluador")).Value,
                        IdViaje = ViajeDetalle.IdViaje
                    };

                popUpCalificar.CalificacionActual = calificacionActual;
                if (calificacionActual.IdUsuarioEvaluado.Equals(ViajeDetalle.Conductor.IdUsuario))
                    popUpCalificar.MostrarVentana(Rol.Conductor);
                else
                    popUpCalificar.MostrarVentana(Rol.Pasajero);
            }
        }
        //Actualiza la seccion de calificacion
        private void PintarCalificaciones()
        {
            if (ViajeDetalle == null) ViajeDetalle = (Viaje)Session["ViajeSeleccionado"];
            hdfEstadoViaje.Value = ViajeDetalle.Estado.ToString();

            if (ViajeDetalle.Estado != Viaje.ViajeEstado.Realizado)
            {
                tabCalificaciones.Visible = false;
                PanelCalificacionesDetalle.Visible = false;
            }
            else
            {
                List<ItemTablaCalificacion> listaCalificaciones = AdministradorCalificaciones.Instancia.CrearItemCalificacion(ViajeDetalle, UsuarioConectado);
                NumeroCalificacionesPendientes = listaCalificaciones.Count;
                if (NumeroCalificacionesPendientes > 0)
                {
                    tabCalificaciones.InnerText = "Calificaciones (" + NumeroCalificacionesPendientes + ")";
                    dataListCalificaciones.DataSource = listaCalificaciones;
                    dataListCalificaciones.DataBind();
                    lblSinCalificaciones.Visible = false;
                }
                else
                {
                    lblSinCalificaciones.Visible = true;
                    dataListCalificaciones.DataSource = null;
                    dataListCalificaciones.DataBind();
                }
            }
        }
Exemplo n.º 14
0
 public long GuardarViaje(Viaje viaje)
 {
     VIAJE viajeInsertar = ToDataEntity.Instancia.ToViaje(viaje);
     EstablecerConexion();
     Conexion.VIAJE.Add(viajeInsertar);
     //Conexion.SaveChanges();
     ConfirmarCambios();
     return viajeInsertar.ID_VIAJE;
 }
 private void ActualizarViajeDetalle()
 {
     string idViajeStr = Request.QueryString["idViajeDetalle"];
     ViajeDetalle = AdministradorViajes.Instancia.VerDetalleViaje(IdViaje);
     Session["ViajeSeleccionado"] = ViajeDetalle;
 }
        public void CorreoParticipacionCancelada(Viaje pvViaje, Solicitud pSolicitud)
        {
            //inicializa los parametros de envio del correo
            var destinatarios = new List<string> { pvViaje.Conductor.Email };

            string asunto = "Carpooling Colombia - Participacion cancelada";

            string mensaje = "El participante: " + pSolicitud.CreadorSolicitud.ObtenerNombreApellidos() +
                             " ha decidido cancelar la participación en uno de tus viajes, desde la ciudad de: " +
                             pvViaje.GetCiudadOrigen().Direccion +
                             " hasta la ciudad de: " + pvViaje.GetCiudadDestino().Direccion;

            mensaje += "<br/> Puedes ver mas informacion con relacion al viaje dentro del listado de tus viajes.";
            mensaje += "<br/><br/>Gracias por hacer parte de Carpooling Colombia.";
            EnviarCorreoPlano(CuentaEmailAdministrador, destinatarios, null, null, asunto, mensaje, true);
        }
Exemplo n.º 17
0
        public VIAJE ToViaje(Viaje viajeActual)
        {
            var viajeDao = new VIAJE
                               {
                                   //TODO esta fecha de creacion deberia ser con la horaPartidaStr y fecha del servidor
                                   FECHA_CREACION = DateTime.Now,
                                   APORTE_ECONOMICO = viajeActual.AporteEconomico,
                                   FECHA_HORA_PARTIDA = viajeActual.FechaHoraPartida,
                                   ID_CONDUCTOR = viajeActual.Conductor.IdUsuario,
                                   ESTADO = (int) viajeActual.Estado,
                                   ID_VIAJE = viajeActual.IdViaje,
                                   PREGUNTA = (viajeActual.Preguntas ==null)?null:viajeActual.Preguntas.Select(ToPregunta).ToList(),
                                   //USUARIO = (viajeActual.Conductor !=null)?ToUsuario(viajeActual.Conductor):null,
                                   //TRAYECTO = viajeActual.TrayectosViaje.Select(ToTrayecto).ToList(),
                                   CALIFICACION = (viajeActual.Calificaciones==null)?null:viajeActual.Calificaciones.Select(ToCalificacion).ToList(),
                                   TRAYECTO = new Collection<TRAYECTO>()
                               };

            foreach (Trayecto trayectoActual in viajeActual.TrayectosViaje)
            {
                var trayectoDao = new TRAYECTO
                                      {
                                          TRAYECTO_SIMPLE = trayectoActual.TrayectoSimple
                                      };

                var coordenadaOrigen = new PARADA()
                                           {
                                               LATITUD = trayectoActual.ParadaOrigen.Latitud,
                                               LONGITUD = trayectoActual.ParadaOrigen.Longitud,
                                               DIRECCION= trayectoActual.ParadaOrigen.Direccion,
                                               TIPO_PARADA = trayectoActual.ParadaOrigen.TipoParada,
                                               NUMERO_PARADA = trayectoActual.ParadaOrigen.NumeroParada
                                           };

                var coordenadaDestino = new PARADA()
                                            {
                                                LATITUD= trayectoActual.ParadaDestino.Latitud,
                                                LONGITUD= trayectoActual.ParadaDestino.Longitud,
                                                DIRECCION = trayectoActual.ParadaDestino.Direccion,
                                                TIPO_PARADA = trayectoActual.ParadaDestino.TipoParada,
                                                NUMERO_PARADA = trayectoActual.ParadaDestino.NumeroParada
                                            };

                trayectoDao.PARADA.Add(coordenadaOrigen);
                trayectoDao.PARADA.Add(coordenadaDestino);
                trayectoDao.CUPOS = trayectoActual.CuposDisponibles;
                viajeDao.TRAYECTO.Add(trayectoDao);
            }

            return viajeDao;
        }
        //Actualiza el listado de las solicitudes (Aprobadas y pendientes) segun el viaje seleccionado
        private void PintarSolicitudes()
        {
            if (ViajeDetalle == null) ViajeDetalle = (Viaje) Session["ViajeSeleccionado"];
            List<Trayecto> listTrayectosSolicitudesPendientes =
                AdministradorSolicitudes.Instancia.DeterimnarTrayectosConSolicitudesPendientes(
                    ViajeDetalle.TrayectosViaje);
            if (listTrayectosSolicitudesPendientes.Count > 0 && ViajeDetalle.Estado != Viaje.ViajeEstado.Realizado)
            {
                tabSolicitudes.InnerText = "Solicitudes (" + listTrayectosSolicitudesPendientes.Count + ")";
                dataListSolicitudes.DataSource = listTrayectosSolicitudesPendientes;
                dataListSolicitudes.DataBind();
                lblSinSolicitudes.Visible = false;
            }
            else
            {
                lblSinSolicitudes.Visible = true;
                dataListSolicitudes.DataSource = null;
                dataListSolicitudes.DataBind();
            }

            List<ItemTablaSolicitud> listaSolicitudesItem =
                AdministradorSolicitudes.Instancia.CreateItemSolicitud(ViajeDetalle);

            List<ItemTablaSolicitud> solicitudesAprobadas =
                listaSolicitudesItem.FindAll(s => s.Estado == Solicitud.SolicitudEstado.Aprobada);
            if (solicitudesAprobadas.Any())
            {
                tabParticipantes.InnerText = "Participantes (" + solicitudesAprobadas.Count + ")";
                dataListParticipantes.DataSource = solicitudesAprobadas;
                dataListParticipantes.DataBind();
                lblSinParticipantes.Visible = false;
            }
            else
                lblSinParticipantes.Visible = true;
        }
 private void PintarPreguntas()
 {
     if (ViajeDetalle == null) ViajeDetalle = (Viaje) Session["ViajeSeleccionado"];
     if (ViajeDetalle.Preguntas.Count > 0)
     {
         tabPreguntas.InnerText = (ViajeDetalle.Preguntas.Any(p => String.IsNullOrWhiteSpace(p.TextoRespuesta)))
                                      ? "Preguntas (" +
                                        ViajeDetalle.Preguntas.FindAll(
                                            p => String.IsNullOrWhiteSpace(p.TextoRespuesta)).Count + ")"
                                      : "Preguntas";
         dataListPreguntas.DataSource = AdministradorPreguntas.Instancia.CreateItemPregunta(ViajeDetalle);
         dataListPreguntas.DataBind();
         lblSinPreguntas.Visible = false;
     }
     else
         lblSinPreguntas.Visible = true;
 }
        public List<ItemTablaSolicitud> CreateItemSolicitud(Viaje pViaje)
        {
            var listaResult = new List<ItemTablaSolicitud>();
            foreach (var trayecto in pViaje.TrayectosViaje)
            {
                if (trayecto.ListaSolicitudes == null) continue;
                var trayecto1 = trayecto;
                //var listaTrayectosPendientes = trayecto.ListaSolicitudes.FindAll(s => s.Estado == Solicitud.SolicitudEstado.Pendiente);

                listaResult.AddRange(trayecto.ListaSolicitudes.Select((solicitud => new ItemTablaSolicitud()
                    {
                        CiudadDestino = pViaje.GetCiudadDestino().Direccion,
                        CiudadOrigen = pViaje.GetCiudadOrigen().Direccion,
                        Comentario = solicitud.Comentario,
                        CuposDisponibles = trayecto1.CuposDisponibles.ToString(),
                        CuposSolicitados = solicitud.CuposSolicitados.ToString(),
                        IdSolicitud = solicitud.IdSolicitud,
                        NombreSolicitante = solicitud.CreadorSolicitud.ObtenerNombreApellidos(),
                        //TODO la reputacion podria mostrarse con unas estrellas
                        Reputacion = (String.IsNullOrWhiteSpace(solicitud.CreadorSolicitud.Reputacion.ToString()))
                                         ? "Sin reputacion"
                                         : solicitud.CreadorSolicitud.Reputacion.ToString(),
                        Estado = solicitud.Estado
                    })));
            }
            return listaResult;
        }
Exemplo n.º 21
0
 public bool EliminarViaje(Viaje viaje)
 {
     EstablecerConexion();
     var regViaje = from v in Conexion.VIAJE
                    where v.ID_VIAJE == viaje.IdViaje
                    select v;
     if (regViaje.Any())
     {
         var viajeDb = regViaje.First();
         viajeDb.ESTADO = 2;
     }
     return ConfirmarCambios();
 }
Exemplo n.º 22
0
        protected void BtnEnviarSolicitud(object sender, EventArgs eventArgs)
        {
            var pasajero = (Usuario)Session["usuario"];
            var idTrayecto = (long)Session["idTrayecto"];
            var solicitudNueva = new Solicitud()
            {
                Comentario = txbComentario.Text,
                CuposSolicitados = int.Parse(txbCuposSolicitados.Text),
                Estado = Solicitud.SolicitudEstado.Pendiente,
                CreadorSolicitud = pasajero,
                IdTrayecto = idTrayecto
            };

            var usuarioConectado = (Usuario)Session["usuario"];
            var idViajeStr = Convert.ToInt32(Request.QueryString["idViajeDetalle"]);
            ViajeDetalle = AdministradorViajes.Instancia.VerDetalleViaje(idViajeStr);
            var conductor = (Usuario) ViajeDetalle.Conductor;

            if (conductor.IdUsuario.Equals(usuarioConectado.IdUsuario))
            {
                lblMensajeError.Text = "No puede realizar participaciones a un viaje que ústed creó.";
                txbCuposSolicitados.Enabled = false;
                txbComentario.Enabled = false;
                panelError.Visible = true;
            }
            else if(AdministradorViajes.Instancia.HayCuposSuficientes(solicitudNueva,idTrayecto))
            {
                if (AdministradorViajes.Instancia.RegistrarSolicitud(solicitudNueva))
                {
                    panelExitoso.Visible = true;
                    HabilitarPopUp(false);
                }
                else
                {
                    lblMensajeError.Text = "No es posible enviar mas de una solicitud al mismo trayecto.";
                    txbCuposSolicitados.Enabled = false;
                    txbComentario.Enabled = false;
                    panelError.Visible = true;
                }
            }
            else
            {
                lblMensajeError.Text = "No hay cupos suficientes en el trayecto que usted seleccionó.";
                txbCuposSolicitados.Enabled = false;
                txbComentario.Enabled = false;
                panelError.Visible = true;
            }
        }
Exemplo n.º 23
0
        public long GuardarCambios(ViajeJSON viajeActual, Usuario conductor, string idViajeEditable)
        {
            var listParadas = new List<Parada> { viajeActual.Origin };
            listParadas.AddRange(viajeActual.Waypoints);
            listParadas.Add(viajeActual.Destination);
            DateTime tmp = DateTime.ParseExact(viajeActual.FechaPartida, "MM/dd/yyyy", null);

            var viajeNuevo = new Viaje
            {
                IdViaje = Convert.ToInt32(idViajeEditable),
                FechaCreacion = DateTime.Now,
                AporteEconomico = viajeActual.Tarifa,
                Conductor = conductor,
                Estado = Viaje.ViajeEstado.Publicado,
                TrayectosViaje = CrearListadoTrayectos(listParadas, viajeActual.Cupos),
                FechaHoraPartida = Convert.ToDateTime(tmp.ToShortDateString() + " " + viajeActual.HoraPartida)
            };
            var context = ViajeDao.Instancia.EstablecerConexion();
            var result = ViajeDao.Instancia.ActualizarParametrosViaje(viajeNuevo, context);
            if(result!=0)
                return result;
            return 0;
        }
 //Dentro del listado de mis viajes localizado en las variables de sesion busca la solicitud
 private Solicitud BuscarSolicitud(long idSolicitud)
 {
     if (ViajeDetalle == null) ViajeDetalle = (Viaje) Session["ViajeSeleccionado"];
     foreach (Solicitud solicitudSeleccionada in ViajeDetalle.TrayectosViaje.Select(
         trayecto => trayecto.ListaSolicitudes.Find(t => t.IdSolicitud == idSolicitud)).Where(
             solicitudSeleccionada => solicitudSeleccionada != null))
     {
         return solicitudSeleccionada;
     }
     throw new Exception("Error buscando la solicitud dentro de los trayectos del viaje");
 }
Exemplo n.º 25
0
 protected void Page_Load(object sender, EventArgs e)
 {
     string idViajeStr = Request.QueryString["idViajeDetalle"];
     if (idViajeStr != null)
     {
         bool desdeBusqueda = !String.IsNullOrWhiteSpace(Request.QueryString["b"]);
         if (desdeBusqueda)
             btnCancelarParticipacion.Visible = false;
         Session["idViajeDetalle"] = long.Parse(idViajeStr);
         UsuarioConectado = (Usuario)Session["usuario"];
         IdViaje = Convert.ToInt64(idViajeStr);
         ViajeDetalle = AdministradorViajes.Instancia.VerDetalleViaje(IdViaje);
         PintarDetalleViaje();
         CrearHiddenFields();
     }
 }
        //Envia el correo a los diferentes pasajeros del viaje
        public void CorreoCancelacionViaje(Viaje pViaje)
        {
            //inicializa los parametros de envio del correo
            List<string> destinatarios = pViaje.GetPasajeros().Select(p => p.Email).ToList();

            string asunto = "Carpooling Colombia - Cancelación de un viaje";
            string mensaje = "El viaje con destino a la ciudad de: " + pViaje.GetCiudadDestino()
                + ", en el cual usted se encontraba como participante en uno de los trayectos, desafortunadamente ha sido cancelado. ";
            mensaje += "<br/><br/>Gracias por hacer parte de Carpooling Colombia.";
            EnviarCorreoPlano(CuentaEmailAdministrador, destinatarios, null, null, asunto, mensaje, true);
        }
Exemplo n.º 27
0
 public bool CancelarViaje(Viaje pViaje)
 {
     pViaje.Estado = Viaje.ViajeEstado.Cancelado;
     if(ViajeDao.Instancia.EliminarViaje(pViaje))
     {
         AdministradorCorreosElectronicos.Instancia.CorreoCancelacionViaje(pViaje);
         return true;
     }
     throw new Exception("El correo electronico a los pasajeros del viaje no ha sido enviado exitosamente, por favor re-intente realizar la acción");
 }
Exemplo n.º 28
0
 private void CrearParadasViaje(Viaje viajeEditable)
 {
     var script = viajeEditable.GetParadasSinOrigenDestino().Aggregate<Parada, string>(null, (current, parada) => current + ("CrearParadaConCiudad('" + parada.Direccion + "'); "));
     ScriptManager.RegisterStartupScript(Page, GetType(), "JsStatus", script, true);
 }
Exemplo n.º 29
0
        public long PublicarViaje(ViajeJSON viajeActual, Usuario conductor)
        {
            var listParadas = new List<Parada> {viajeActual.Origin};
            listParadas.AddRange(viajeActual.Waypoints);
            listParadas.Add(viajeActual.Destination);
            DateTime tmp = DateTime.ParseExact(viajeActual.FechaPartida,"MM/dd/yyyy",null);

            var viajeNuevo = new Viaje
                                 {
                                     FechaCreacion = DateTime.Now,
                                     AporteEconomico = viajeActual.Tarifa,
                                     Conductor = conductor,
                                     Estado = Viaje.ViajeEstado.Publicado,
                                     TrayectosViaje = CrearListadoTrayectos(listParadas, viajeActual.Cupos),
                                     FechaHoraPartida = Convert.ToDateTime(tmp.ToShortDateString() + " " + viajeActual.HoraPartida)
                                 };

            //TODO valiadaciones antes de guardar
            return ViajeDao.Instancia.GuardarViaje(viajeNuevo);
        }
        protected void BtnEditarClick(object sender, EventArgs e)
        {
            if (ViajeDetalle == null) ViajeDetalle = (Viaje)Session["ViajeSeleccionado"];

            if(ViajeDetalle.GetPasajeros().Count > 0)
            {
                popUpEdicionInvalidad.TituloPopUp = "Edición invalida";
                popUpEdicionInvalidad.MensajePrincipal =
                    "No es posible editar un viaje cuando ya existen pasajeros en el.";
                popUpEdicionInvalidad.MostrarPopUp();
            }
            else
                Response.Redirect("../Viajes/EditarViaje.aspx?id=" + ViajeDetalle.IdViaje);
        }