public void InsertarSolicitud(Solicitud pSolicitud) { EstablecerConexion(); var solicitudDb = ToDataEntity.Instancia.ToSolicitud(pSolicitud); Conexion.SOLICITUD.Add(solicitudDb); Conexion.SaveChanges(); }
//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(); }
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 }; }
//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; }
public bool RegistrarSolicitud(Solicitud pSolicitud) { if (!SolicitudDao.Instancia.ExisteSolicitud(pSolicitud.CreadorSolicitud, pSolicitud.IdTrayecto)) { SolicitudDao.Instancia.InsertarSolicitud(pSolicitud); return true; } return false; }
public bool HayCuposSuficientes(Solicitud pSolicitud, long idTrayecto) { var trayecto = TrayectoDao.Instancia.GetTrayecto(idTrayecto); if (trayecto != null) return pSolicitud.CuposSolicitados < trayecto.CuposDisponibles; return false; }
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); }