Ejemplo n.º 1
0
 public void InsertarSolicitud(Solicitud pSolicitud)
 {
     EstablecerConexion();
     var solicitudDb = ToDataEntity.Instancia.ToSolicitud(pSolicitud);
     Conexion.SOLICITUD.Add(solicitudDb);
     Conexion.SaveChanges();
 }
Ejemplo n.º 2
0
 //Actualiza la solicitud utilizando el BO correspondiente
 public bool ActualizarEstadoSolicitud(Solicitud pSolicitud)
 {
     EstablecerConexion();
     var solicitudDb = ToDataEntity.Instancia.ToSolicitud(pSolicitud);
     Conexion.SOLICITUD.Attach(solicitudDb);
     var entidad = Conexion.Entry(solicitudDb);
     entidad.Property(s => s.ESTADO).IsModified = true;
     return ConfirmarCambios();
 }
Ejemplo n.º 3
0
 public SOLICITUD ToSolicitud(Solicitud pSolicitud)
 {
     return new SOLICITUD()
                {
                    ID_TRAYECTO = pSolicitud.IdTrayecto,
                    COMENTARIO = pSolicitud.Comentario,
                    CUPOS_SOLICITADOS = pSolicitud.CuposSolicitados,
                    ESTADO = (int) pSolicitud.Estado,
                    ID_PASAJERO = pSolicitud.CreadorSolicitud.IdUsuario,
                    ID_SOLICITUD = pSolicitud.IdSolicitud,
                    TRAYECTO = (pSolicitud.Trayecto != null)? ToTrayecto(pSolicitud.Trayecto):null
                };
 }
Ejemplo n.º 4
0
        //Establece la conexion y actualiza cada uno de los trayectos
        public bool ActualizarCuposCancelacion(List<Trayecto> pTrayectos, Solicitud pSolicitud)
        {
            EstablecerConexion();
            foreach (var trayectoDb in pTrayectos.Select(trayecto => ToDataEntity.Instancia.ToTrayecto(trayecto)))
            {
                Conexion.TRAYECTO.Attach(trayectoDb);
                var entidad = Conexion.Entry(trayectoDb);
                entidad.Property(t => t.CUPOS).IsModified = true;
                if (trayectoDb.SOLICITUD.Any(s => s.ID_SOLICITUD == pSolicitud.IdSolicitud))
                    SolicitudDao.Instancia.EliminarSolicitud(trayectoDb.SOLICITUD.ToList().Find(s => s.ID_SOLICITUD == pSolicitud.IdSolicitud), Conexion);
            }

            return ConfirmarCambios();
        }
        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;
        }
Ejemplo n.º 6
0
 public bool RegistrarSolicitud(Solicitud pSolicitud)
 {
     if (!SolicitudDao.Instancia.ExisteSolicitud(pSolicitud.CreadorSolicitud, pSolicitud.IdTrayecto))
     {
         SolicitudDao.Instancia.InsertarSolicitud(pSolicitud);
         return true;
     }
     return false;
 }
Ejemplo n.º 7
0
 public bool HayCuposSuficientes(Solicitud pSolicitud, long idTrayecto)
 {
     var trayecto = TrayectoDao.Instancia.GetTrayecto(idTrayecto);
     if (trayecto != null)
         return pSolicitud.CuposSolicitados < trayecto.CuposDisponibles;
     return false;
 }
Ejemplo n.º 8
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;
            }
        }
 public bool RechazarSolicitud(Solicitud pSolicitud)
 {
     pSolicitud.Estado = Solicitud.SolicitudEstado.Rechazada;
     if(SolicitudDao.Instancia.ActualizarEstadoSolicitud(pSolicitud))
         AdministradorCorreosElectronicos.Instancia.CorreoSolicitudRechazada(pSolicitud);
     //Todo retornoar un valor variable
     return true;
 }
        public void CorreoSolicitudRechazada(Solicitud pSolicitud)
        {
            //inicializa los parametros de envio del correo
            var destinatarios = new List<string> { pSolicitud.CreadorSolicitud.Email };

            //TODO probar que el trayecto venga dentro de la solicitud y no solo el id del trayecto
            string asunto = "Carpooling Colombia - Su solicitud fue rechazada";

            string mensaje = "Su solicitud para participar en el viaje desde:" + pSolicitud.Trayecto.ParadaOrigen.Direccion +
                " hasta la ciudad de: " + pSolicitud.Trayecto.ParadaDestino.Direccion +
                             " ha sido rechazada.";

            mensaje += "<br/><br/>Gracias por hacer parte de Carpooling Colombia.";
            EnviarCorreoPlano(CuentaEmailAdministrador, destinatarios, null, null, asunto, mensaje, true);
        }
        public void CorreoSolicitudAprobada(Solicitud pSolicitud)
        {
            //inicializa los parametros de envio del correo
            var destinatarios = new List<string> { pSolicitud.CreadorSolicitud.Email };

            //TODO probar que el trayecto venga dentro de la solicitud y no solo el id del trayecto
            string asunto = "Carpooling Colombia - Su solicitud fue aprobada";

            string mensaje = "Su solicitud para participar en un viaje" +
                             " ha sido aprobada.";
            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);
        }
        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);
        }