public bool Insertar(Calificacion pCalificacion, CARPOOLEntities pContextoDb, bool pConfirmarCambios)
 {
     var calificacionDb = ToDataEntity.Instancia.ToCalificacion(pCalificacion);
     EstablecerConexion(pContextoDb);
     Conexion.CALIFICACION.Add(calificacionDb);
     if (pConfirmarCambios)
         return ConfirmarCambios();
     else
         return false;
 }
Exemple #2
0
 public CALIFICACION ToCalificacion(Calificacion pCalificacion)
 {
     return new CALIFICACION()
                {
                    ID_CALIFICACION = pCalificacion.IdCalificacion,
                    FECHA_REALIZACION = pCalificacion.FechaRealizacion,
                    PUNTAJE = pCalificacion.Puntaje,
                    COMENTARIO = pCalificacion.Comentario,
                    ID_VIAJE = pCalificacion.IdViaje,
                    ID_EVALUADO = pCalificacion.IdUsuarioEvaluado,
                    ID_EVALUADOR = pCalificacion.IdUsuarioEvaluador
                };
 }
 public bool Actualizar(Calificacion pCalificacion, CARPOOLEntities pContextoDb, bool pConfirmarCambios)
 {
     var calificacionDb = ToDataEntity.Instancia.ToCalificacion(pCalificacion);
     EstablecerConexion(pContextoDb);
     Conexion.CALIFICACION.Attach(calificacionDb);
     var entidad = Conexion.Entry(calificacionDb);
     entidad.Property(x => x.PUNTAJE).IsModified = true;
     entidad.Property(x => x.FECHA_REALIZACION).IsModified = true;
     entidad.Property(x => x.COMENTARIO).IsModified = true;
     if (pConfirmarCambios)
         return ConfirmarCambios();
     else
         return false;
 }
        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);
        }
        /// <summary>
        /// Procedimiento que se ejecuta periodicamente para actualizar el estado de los viajes que de acuerdo a su fecha de realización
        /// ya dejaron de ser vigentes
        /// </summary>
        /// <returns></returns>
        public static void MonitorViajesVigentes(object sender, DoWorkEventArgs e)
        {
            //Actualiza el estado de los viajes en la BD
            IEnumerable<Viaje> viajesActualizar= new List<Viaje>();
            var contextoBd = ViajeDao.Instancia.EstablecerConexion(); //obtiene un contexto de bd para la trasaccion global

            //Acutializa el estado de los viajes que ya no son vigentes
            long viajesActualizadoBD = ViajeDao.Instancia.ActualizarEstadoViajesRealizados(DateTime.Today, out viajesActualizar, contextoBd, false);

            //Crear los registros de calificaciones pendientes
            if (viajesActualizar.Count() == (int)viajesActualizadoBD)
            {
                foreach (var viaje in viajesActualizar)
                {
                    foreach (var pasajero in viaje.GetPasajeros())
                    {
                        Calificacion calificacionInsertar;
                        //registro calificacion conductor pasajero
                        calificacionInsertar = new Calificacion()
                            {
                                Puntaje = 0,
                                IdViaje = viaje.IdViaje,
                                IdUsuarioEvaluador = viaje.Conductor.IdUsuario,
                                IdUsuarioEvaluado = pasajero.IdUsuario
                            };
                        CalificacionDao.Instancia.Insertar(calificacionInsertar, contextoBd, false);

                        //registro calificacion pasajero conductor
                        calificacionInsertar = new Calificacion()
                        {
                            Puntaje = 0,
                            IdViaje = viaje.IdViaje,
                            IdUsuarioEvaluador = pasajero.IdUsuario,
                            IdUsuarioEvaluado = viaje.Conductor.IdUsuario
                        };
                        CalificacionDao.Instancia.Insertar(calificacionInsertar, contextoBd, false);

                        //envia el email de calificacion pendiente al pasajero
                        AdministradorCorreosElectronicos.Instancia.CorreoCalificacionParticipante(viaje, pasajero);
                    }

                    //envia el email de calificacion pendiente al conductor
                    AdministradorCorreosElectronicos.Instancia.CorreoCalificacionConductor(viaje);
                }

                //confirma los cambios en la bd y destruye el contexto
                ViajeDao.Instancia.ConfirmarCambios(contextoBd);
            }
            ViajeDao.Instancia.TerminarConexion(contextoBd);
        }
 public bool CrearCalificacion(Calificacion pCalificacion, CARPOOLEntities pContextoDb, bool pConfirmarCambios)
 {
     return CalificacionDao.Instancia.Insertar(pCalificacion, pContextoDb, pConfirmarCambios);
 }
        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);
            }
        }