public bool ExisteSolicitud(Usuario pasajero, long idTrayecto) { EstablecerConexion(); var registrosSolicitudes = from s in Conexion.SOLICITUD where s.ID_TRAYECTO == idTrayecto && s.ID_PASAJERO == pasajero.IdUsuario select s; return registrosSolicitudes.Any(); }
protected void Page_Load(object sender, EventArgs e) { if(usuarioApp == null) usuarioApp = (Usuario)Session["usuario"]; if(!this.IsPostBack) MostrarInfoUsuario(); }
public void MostrarVentana(string idUsuario) { usuarioPerfil = AdministradorCuentas.Instancia.ConsultarUsuarioPorId(idUsuario); if (usuarioPerfil != null) MostrarInfoUsuario(); uplVentanaModal.Update(); mpePerfilPublico.Show(); }
//Metodo para actualizar el estado public bool ActualizarEstado(Usuario pUsuario) { var usuario = ToDataEntity.Instancia.ToUsuario(pUsuario); EstablecerConexion(); Conexion.USUARIO.Attach(usuario); var entidad = Conexion.Entry(usuario); entidad.Property(x => x.ESTADO).IsModified = true; return ConfirmarCambios(); }
public List<Solicitud> ConsultarSolicitudesAprobadas(Usuario pasajero) { EstablecerConexion(); var regSolicitudes = from n in Conexion.SOLICITUD where n.ID_PASAJERO == pasajero.IdUsuario && n.ESTADO == (int) Solicitud.SolicitudEstado.Aprobada select n; return regSolicitudes.Any() ? ToBusinessEntity.Instancia.ToSolicitudes(regSolicitudes.ToList()) : null; }
//Metodo para actualizar la contraseña public bool ActualizarContrasenia(Usuario pUsuario, string pContraseniaActual, string pContraseniaNueva, out string pMensajeRetorno) { pMensajeRetorno = string.Empty; if (pContraseniaActual != DesencriptarContrasenia(pUsuario.Contrasenia)) { pMensajeRetorno = "Contraseña actual incorrecta."; return false; } pUsuario.Contrasenia = AdministradorCuentas.Instancia.EncriptarContrasenia(pContraseniaNueva); return UsuarioDao.Instancia.ActualizarContrasenia(pUsuario); }
//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); }
//Metodo para actualizar reputacion public bool ActualizarReputacion(Usuario pUsuario, CARPOOLEntities pContextoDb, bool pConfirmarCambios) { var usuario = ToDataEntity.Instancia.ToUsuario(pUsuario); EstablecerConexion(pContextoDb); Conexion.USUARIO.Attach(usuario); var entidad = Conexion.Entry(usuario); entidad.Property(x => x.REPUTACION).IsModified = true; if (pConfirmarCambios) return ConfirmarCambios(); else return false; }
protected void Page_Load(object sender, EventArgs e) { if(!IsPostBack) { UsuarioCreador = (Usuario) Session["usuario"]; string idViajeStr = Request.QueryString["id"]; IdViajeEditable = idViajeStr; var idViaje = long.Parse(idViajeStr); var viajeEditable = AdministradorViajes.Instancia.VerDetalleViaje(idViaje); Session["viajeEditable"] = viajeEditable; CrearParadasViaje(viajeEditable); Paso2Viaje(viajeEditable); } }
public bool RegistrarCalificacion(Calificacion pCalificacion, Usuario pUsuarioEvaluado) { var contextoBd = ViajeDao.Instancia.EstablecerConexion(); CalificacionDao.Instancia.Actualizar(pCalificacion, contextoBd, false); //actualiza la reputacion var calificacioneUsuario = ObtenerCalificacionesUsuario(pCalificacion.IdUsuarioEvaluado, true); calificacioneUsuario.Add(pCalificacion); decimal reputacionCalculada = 0; calificacioneUsuario.ForEach(c => reputacionCalculada = reputacionCalculada + c.Puntaje); reputacionCalculada = reputacionCalculada / calificacioneUsuario.Count; pUsuarioEvaluado.Reputacion = reputacionCalculada; return CalificacionDao.Instancia.ActualizarReputacion(pUsuarioEvaluado, contextoBd, true); }
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; }
public bool CancelarParticipacion(long idViaje, Usuario participante) { var pViaje = ViajeDao.Instancia.ObtenerViaje(idViaje); var pSolicitud = pViaje.GetSolicitudParticipante(participante); 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); var result = TrayectoDao.Instancia.ActualizarCuposCancelacion(pViaje.TrayectosViaje, pSolicitud); if (result) AdministradorCorreosElectronicos.Instancia.CorreoParticipacionCancelada(pViaje, pSolicitud); return result; }
//Metodo para modificar un registro a la tabla usuario public bool Actualizar(Usuario pUsuario) { var usuario = ToDataEntity.Instancia.ToUsuario(pUsuario); EstablecerConexion(); Conexion.USUARIO.Attach(usuario); var entidad = Conexion.Entry(usuario); entidad.Property(x => x.APELLIDO).IsModified = true; entidad.Property(x => x.EMAIL).IsModified = true; entidad.Property(x => x.FECHA_NACIMIENTO).IsModified = true; entidad.Property(x => x.FOTO).IsModified = true; entidad.Property(x => x.FUMADOR).IsModified = true; entidad.Property(x => x.GENERO).IsModified = true; entidad.Property(x => x.INFORMACION_ADICIONAL).IsModified = true; entidad.Property(x => x.NOMBRE).IsModified = true; entidad.Property(x => x.ID_OCUPACION).IsModified = true; entidad.Property(x => x.TELEFONO_FIJO).IsModified = true; entidad.Property(x => x.TELEFONO_MOVIL).IsModified = true; entidad.Property(x => x.VEHICULO_PROPIO).IsModified = true; entidad.Property(x => x.CONTRASENIA).IsModified = true; entidad.Property(x => x.ID_CIUDAD_RESIDENCIA).IsModified = true; entidad.Property(x => x.ESTADO).IsModified = true; return ConfirmarCambios(); }
//Actualizar la fecha de ultimo ingreso public bool ActualizarUltimoIngreso(Usuario pUsuario) { pUsuario.FechaUltimoIngreso = DateTime.Now; return UsuarioDao.Instancia.ActualizarUltimoIngreso(pUsuario); }
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); }
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; }
public List<Viaje> BuscarViajesVigentesPasajero(Usuario pUsuario) { var listSolicitudes = SolicitudDao.Instancia.ConsultarSolicitudesAprobadas(pUsuario); return listSolicitudes != null ? ViajeDao.Instancia.ConsultarViajesFromSolicitudes(listSolicitudes) : null; }
public List<Viaje> BuscarMisViajesConductor(Usuario pUsuario) { return ViajeDao.Instancia.ConsultarMisViajes(pUsuario); }
//Envia el correo de recuperacion de contraseña public void CorreoRecuperacionContrasenia(Usuario pUsuario) { //inicializa los parametros de envio del correo List<string> destinatarios = new List<string> { pUsuario.Email }; string nuevaContraseniaDesencriptada = AdministradorCuentas.Instancia.DesencriptarContrasenia(pUsuario.Contrasenia); string asunto = "Carpooling Colombia - Recuperación de cuenta"; string mensaje = "Hemos generado un nueva contraseña que te permita el acceso. Por favor ingresa con esta contraseña y actulizada por seguridad."; mensaje += "<br/>Tu contraseña de ingreso es: " + nuevaContraseniaDesencriptada; mensaje += "<br/><br/>Gracias por hacer parte de Carpooling Colombia."; EnviarCorreoPlano(CuentaEmailAdministrador , destinatarios, null, null, asunto, mensaje, true); }
//Valida y modifica un usuario public bool ModificarCuenta(Usuario pUsuario) { //TODO: Verifica que el usuario no exista //Envia el usuario para su insercion en la base de datos return UsuarioDao.Instancia.Actualizar(pUsuario); }
//Envia el correo con la pregunta que realizaron de un viaje public void CorreoPregunta(Pregunta pPregunta, Usuario tUsuario) { //inicializa los parametros de envio del correo List<string> destinatarios = new List<string> { tUsuario.Email }; string asunto = "Carpooling Colombia - Hay una nueva pregunta por responder en tu viaje"; string mensaje = "El usuario: " + pPregunta.CreadorPregunta.ObtenerNombreApellidos() + " tiene la siguiente pregunta en tu viaje: " + pPregunta.TextoPregunta; mensaje += "<br/> Puedes responder la pregunta en el deatlle del viaje, sección de preguntas de tu viaje."; mensaje += "<br/><br/>Gracias por hacer parte de Carpooling Colombia."; EnviarCorreoPlano(CuentaEmailAdministrador, destinatarios, null, null, asunto, mensaje, true); }
protected void Page_Load(object sender, EventArgs e) { try { if (usuarioApp == null) usuarioApp = (Usuario)Session["usuario"]; CargarValoresHidden(); if (!this.IsPostBack) { CargarDdlOcupacion(); MostrarInfoUsuario(); } } catch (Exception ex) { ErrorAplicacion error = new ErrorAplicacion{TituloError = ex.Message, DetalleError = ex.StackTrace}; ((Global)this.Context.ApplicationInstance).ErrorExcepcion = error; Response.Redirect("~/Front/Error.aspx"); } }
protected void btnFinalizar_Click(object sender, EventArgs e) { try { var usuario = new Usuario { IdUsuario = txbIdUsuario.Text.ToLower(), Nombre = txtNombres.Text, Apellido = txtApellidos.Text, Contrasenia = AdministradorCuentas.Instancia.EncriptarContrasenia(txtContrasena.Text.Trim()), FechaNacimiento = new DateTime(Convert.ToInt32(ddlAnioNacimiento.SelectedValue), Convert.ToInt32(ddlMesNacimiento.SelectedValue), Convert.ToInt32(hfDiaNacimiento.Value)), FechaUltimoIngreso = DateTime.Now, ResidenciaUbicacion = new UbicacionGeografica { IdCiudad = Convert.ToInt32(ddlCiudad.SelectedValue), NombreCiudad = ddlCiudad.Text, IdDepartamento = Convert.ToInt32(ddlDepartamento.SelectedValue), NombreDepartamento = ddlDepartamento.Text, IdPais = Convert.ToInt32(ddlPais.SelectedValue), NombrePais = ddlPais.Text }, Email = txtCorreoElectronico.Text, Genero = rblGenero.SelectedValue, Ocupacion = new Ocupacion { IdOcupacion = Convert.ToInt32(ddlOcupacion.SelectedValue), NombreOcupacion = ddlOcupacion.Text }, TelefonoFijo = txtTelefonoFijo.Text, TelefonoMovil = txtTelefonoMovil.Text, Fumador = chkFumador.Checked, VehiculoPropio = chkVehiculo.Checked, InformacionAdicional = txbInfoAdicional.Text.Trim(), Foto = null, Reputacion = null, Estado = UsuarioEstado.Activo }; //string rutaImagenCuentaActual = Session["imagenUsuario"].ToString(); //string rutaImagenCuentaNueva; //if (Request.Form["hfdImagePath"].LastIndexOf('?') != -1) // rutaImagenCuentaNueva = Server.MapPath(Request.Form["hfdImagePath"].Substring(0, Request.Form["hfdImagePath"].LastIndexOf('?'))); //else // rutaImagenCuentaNueva = Server.MapPath(Request.Form["hfdImagePath"]); //bool imagenesIguales; //string rutaImagenMostrar; //byte[] imagenNueva = AdministradorCuentas.Instancia.ActualizarImagenCuenta(Server.MapPath("/"), rutaImagenCuentaActual, rutaImagenCuentaNueva, out imagenesIguales, out rutaImagenMostrar); //if (!imagenesIguales) // usuario.Foto = imagenNueva; //crea el usuario en la base de datos AdministradorCuentas.Instancia.CrearCuenta(usuario); //inicia sesion con el usuario Session["usuario"] = usuario; AdministradorCuentas.Instancia.EliminarImagenTemporal(Server.MapPath("/"), usuario.IdUsuario); string fileName; if (usuario.Foto != null) { var imagenCuenta = AdministradorCuentas.Instancia.ObtenerImageFromBinary(usuario.Foto); fileName = AdministradorCuentas.Instancia.GuardarImagenCuenta(imagenCuenta, Server.MapPath("/"), usuario.IdUsuario); } else { fileName = usuario.Genero == "H" ? ConfigurationManager.AppSettings["ImagenCuentaHombre"] : ConfigurationManager.AppSettings["ImagenCuentaMujer"]; fileName = Server.MapPath(fileName.Replace("~", "")); } Session["imagenUsuario"] = fileName; string nombreMostrarUsuario = usuario.ObtenerNombreApellidos() + " (" + usuario.IdUsuario + ")"; FormsAuthentication.RedirectFromLoginPage(nombreMostrarUsuario, false); } catch (Exception ex) { ErrorAplicacion error = new ErrorAplicacion { TituloError = ex.Message, DetalleError = ex.StackTrace }; ((Global)this.Context.ApplicationInstance).ErrorExcepcion = error; Response.Redirect("~/Front/Error.aspx"); } }
public Usuario ToUsuario(USUARIO pUsuario) { Usuario usuarioBO = new Usuario { IdUsuario = pUsuario.ID_USUARIO, Contrasenia = pUsuario.CONTRASENIA, Nombre = pUsuario.NOMBRE, Apellido= pUsuario.APELLIDO, Email=pUsuario.EMAIL, FechaNacimiento = pUsuario.FECHA_NACIMIENTO, FechaUltimoIngreso = pUsuario.FECHA_ULTIMO_INGRESO, Genero = pUsuario.GENERO, ResidenciaUbicacion = this.ToUbicacionGeografica(pUsuario.CIUDAD), Ocupacion = this.ToOcupacion(pUsuario.OCUPACION), TelefonoMovil = pUsuario.TELEFONO_MOVIL, TelefonoFijo = pUsuario.TELEFONO_FIJO, VehiculoPropio = pUsuario.VEHICULO_PROPIO, Fumador = pUsuario.FUMADOR, Foto = pUsuario.FOTO, InformacionAdicional = pUsuario.INFORMACION_ADICIONAL, Reputacion = pUsuario.REPUTACION, Estado = (UsuarioEstado)pUsuario.ESTADO }; return usuarioBO; }
public List<Viaje> ConsultarMisViajes(Usuario pUsuario) { EstablecerConexion(); var regViajes = from v in Conexion.VIAJE where v.USUARIO.ID_USUARIO == pUsuario.IdUsuario select v; return regViajes.Any() ? ToBusinessEntity.Instancia.ToViajes(regViajes.ToList()) : null; }
public bool AutenticarUsuario(string pIdEmailUsuario, string pContrasenia, out Usuario pUsuario) { pIdEmailUsuario.Trim().ToLower(); if (pIdEmailUsuario.Contains("@")) pUsuario = UsuarioDao.Instancia.ObtenerPorEmail(pIdEmailUsuario); else pUsuario = UsuarioDao.Instancia.ObtenerPorId(pIdEmailUsuario); if (pUsuario != null) { if (pUsuario.Estado == UsuarioEstado.Activo) { string contraseniaDbDesencriptada = this.DesencriptarContrasenia(pUsuario.Contrasenia); contraseniaDbDesencriptada.Trim(); if (contraseniaDbDesencriptada.Equals(pContrasenia.Trim())) { ActualizarUltimoIngreso(pUsuario); return true; } } } return false; }
//Desactivar la cuenta public bool DesactivarCuenta(Usuario pUsuario) { pUsuario.Estado = UsuarioEstado.Inactivo; return UsuarioDao.Instancia.ActualizarEstado(pUsuario); }
protected void btnFinalizar_Click(object sender, EventArgs e) { //System.Threading.Thread.Sleep(3000); //var a = ddl.InnerText; try { var usuario = new Usuario { IdUsuario = txtNombreUsuario.Text.ToLower(), Nombre = txtNombres.Text, Apellido = txtApellidos.Text, Contrasenia = AdministradorCuentas.Instancia.EncriptarContrasenia(txtContrasena.Text.Trim()), FechaNacimiento = new DateTime(Convert.ToInt32(ddlAnioNacimiento.SelectedValue), Convert.ToInt32(ddlMesNacimiento.SelectedValue), Convert.ToInt32(Request.Form["hfDiaNacimiento"])), //DateTime.Parse(txtFechaNacimiento.Text), FechaUltimoIngreso = DateTime.Now, ResidenciaUbicacion = new UbicacionGeografica { IdCiudad = Convert.ToInt32(ddlCiudad.SelectedValue), NombreCiudad = ddlCiudad.Text, IdDepartamento = Convert.ToInt32(ddlDepartamento.SelectedValue), NombreDepartamento = ddlDepartamento.Text, IdPais = Convert.ToInt32(ddlPais.SelectedValue), NombrePais = ddlPais.Text }, Email = txtCorreoElectronico.Text, Genero = rblstGenero.SelectedValue, Ocupacion = new Ocupacion { IdOcupacion = Convert.ToInt32(ddlOcupacion.SelectedValue), NombreOcupacion = ddlOcupacion.Text }, TelefonoFijo = txtTelefonoFijo.Text, TelefonoMovil = txtTelefonoMovil.Text, Fumador = chkFumador.Checked, VehiculoPropio = chkVehiculoPropio.Checked, Foto = AdministradorCuentas.Instancia.ObtenerBinaryFromImagen(Server.MapPath("/" + m_imagenUsuarioPath)), InformacionAdicional = txtMasInformacion.Text, Reputacion = null }; AdministradorCuentas.Instancia.CrearCuenta(usuario); } catch (Exception) { throw; } }
public USUARIO ToUsuario(Usuario pUsuario) { var usuario = new USUARIO { ID_USUARIO = pUsuario.IdUsuario, NOMBRE = pUsuario.Nombre, APELLIDO = pUsuario.Apellido, CONTRASENIA = pUsuario.Contrasenia, FECHA_NACIMIENTO = pUsuario.FechaNacimiento, FECHA_ULTIMO_INGRESO = pUsuario.FechaUltimoIngreso, EMAIL = pUsuario.Email, ID_CIUDAD_RESIDENCIA = pUsuario.ResidenciaUbicacion.IdCiudad, GENERO = pUsuario.Genero, ID_OCUPACION = pUsuario.Ocupacion.IdOcupacion, TELEFONO_FIJO = pUsuario.TelefonoFijo, TELEFONO_MOVIL = pUsuario.TelefonoMovil, FUMADOR = pUsuario.Fumador, VEHICULO_PROPIO = pUsuario.VehiculoPropio, FOTO = pUsuario.Foto, INFORMACION_ADICIONAL = pUsuario.InformacionAdicional, REPUTACION = pUsuario.Reputacion, ESTADO = (int)pUsuario.Estado }; return usuario; }
public Solicitud GetSolicitudParticipante(Usuario usuario) { var listSolicitudesAprobadas = new List<Solicitud>(); foreach (var trayecto in TrayectosViaje) listSolicitudesAprobadas.AddRange(trayecto.ListaSolicitudes.FindAll(s => s.Estado == Solicitud.SolicitudEstado.Aprobada)); return listSolicitudesAprobadas.Find(p=> p.CreadorSolicitud.IdUsuario == usuario.IdUsuario); }