Example #1
0
        public DataTable RecuperarCertificado(long cursoID)
        {
            DataTable tabla = new DataTable();

            tabla.Columns.Add("codigoRespuesta");
            tabla.Columns.Add("nombre");
            tabla.Columns.Add("empresa");
            tabla.Columns.Add("curso");
            tabla.Columns.Add("imagenEmpresa");

            // -- Obtengo usuario logueado
            var usuarioLogueado = SessionManager.Get <Usuario>(Global.SessionsKeys.USER_SESSION);

            // -- Recupero los cursosUsuarios
            var cursoUsuario = Dalc.GetByUsuarioAndCurso(usuarioLogueado.EntityID, cursoID);

            // -- Recupero curso
            CursoDalc cursoDalc = new CursoDalc();
            var       curso     = cursoDalc.GetByID(cursoID);

            //creo nueva fila
            DataRow row = tabla.NewRow();

            if (cursoUsuario.EstadoCurso.EntityID == (long)Entities.EstadoCurso.EstadosCursos.EvaluacionRealizada)
            {
                //Si aprobo el curso
                if (cursoUsuario.Nota > 60)
                {
                    row["codigoRespuesta"] = 1;
                    row["nombre"]          = usuarioLogueado.NombreCompleto;
                    row["empresa"]         = usuarioLogueado.Empresa.Nombre;
                    row["curso"]           = curso.Nombre;
                    row["imagenEmpresa"]   = usuarioLogueado.Empresa.Imagen;
                }
                else
                {
                    row["codigoRespuesta"] = 2;//No aprobo el curso
                }
            }
            else
            {
                row["codigoRespuesta"] = 3;//No realizo evaluacion
            }

            tabla.Rows.Add(row);

            return(tabla);
        }
Example #2
0
        /// <summary>
        /// Guarda examen realizado
        /// </summary>
        /// <param name="preguntas">preguntas</param>
        /// <param name="cursoID">id del cursp</param>
        /// <returns></returns>
        public float GuardarExamenRealizado(List <Pregunta> preguntas, long cursoID)
        {
            // -- Obtengo usuario logueado
            var usuarioLogueado = SessionManager.Get <Usuario>(Global.SessionsKeys.USER_SESSION);
            // -- Recupera curso usuario
            var cursoUsuario = Dalc.GetByUsuarioAndCurso(usuarioLogueado.EntityID, cursoID);

            // -- Recupero curso
            CursoDalc cursoDalc = new CursoDalc();
            var       curso     = cursoDalc.GetByID(cursoID);
            // -- Cantidad correctas
            int cantCorrectas = 0;

            // -- Por cada pregunta del curso
            foreach (Pregunta pregunta in curso.Preguntas)
            {
                // -- Obtengo la opcion correcta
                Opcion opcionCorrecta = pregunta.Opciones.Where(x => x.Correcta).First();
                // -- Obtengo la pregunta de las respondidas
                Pregunta preguntaActual = preguntas.Where(x => x.EntityID == pregunta.EntityID).First();
                // -- Si la opcion elegida es la correcta(es la unica opcion que se trae de las preguntas contestadas)
                if (opcionCorrecta.EntityID == preguntaActual.Opciones.First().EntityID)
                {
                    // -- Sumo una como correcta
                    cantCorrectas++;
                }
            }

            // Calculo la nota
            double nota = (float)cantCorrectas / (float)curso.Preguntas.Count * 100;

            // -- La paso a 2 decimales
            nota = Math.Round(nota, 2);
            // -- Actualizo cursousuario
            cursoUsuario.Nota        = (float)nota;
            cursoUsuario.EstadoCurso = new EstadoCurso {
                EntityID = (long)Entities.EstadoCurso.EstadosCursos.EvaluacionRealizada
            };
            Dalc.Update(cursoUsuario);

            return((float)nota);
        }
Example #3
0
        /// <summary>
        /// Recupera datos para reporte
        /// </summary>
        /// <param name="cursoID"></param>
        /// <returns></returns>
        public DataTable GetForReport(long cursoID)
        {
            // -- Obtengo usuario logueado
            var usuarioLogueado = SessionManager.Get <Usuario>(Global.SessionsKeys.USER_SESSION);
            // -- Recupero los cursosUsuarios
            var cursosUsuarios = Dalc.GetByCursoAndEmpresa(cursoID, usuarioLogueado.Empresa.EntityID);
            // -- Recupero usuarios de la empresa
            UsuarioDalc usuarioDalc     = new UsuarioDalc();
            var         usuariosEmpresa = usuarioDalc.GetByEmpresa(usuarioLogueado.Empresa.EntityID);


            DiapositivaVistaDalc diapositivaVistaDalc = new DiapositivaVistaDalc();

            // Recupero la cantidad de diapositivas
            int cantidadDiapositivas = new DiapositivaDalc().GetByCurso(cursoID).Count;

            // -- Creo la tabla
            DataTable tablaCursosUsuarios = new DataTable("CursosUsuarios");

            tablaCursosUsuarios.Columns.Add("usuario");
            tablaCursosUsuarios.Columns.Add("estado");
            tablaCursosUsuarios.Columns.Add("nota");
            tablaCursosUsuarios.Columns.Add("diapositivasVistas");

            foreach (CursoUsuario cursoUsuario in cursosUsuarios)
            {
                // -- Creo fila
                DataRow fila = tablaCursosUsuarios.NewRow();
                // -- Asigno datos
                fila["usuario"] = cursoUsuario.Usuario.NombreCompleto;
                fila["estado"]  = cursoUsuario.EstadoCurso.Nombre;
                if (cursoUsuario.EstadoCurso.EntityID == (long)Entities.EstadoCurso.EstadosCursos.EvaluacionRealizada)
                {
                    // -- Si esta hecho asigno nota
                    fila["nota"] = cursoUsuario.Nota + "%";
                }
                else
                {
                    // -- Asigno mensaje si no esta hecho
                    fila["nota"] = "Sin Nota";
                }

                //Recupero la cantidad de diapositivas que vio el usuario
                int cantidadDiapositivasVistas = diapositivaVistaDalc.GetByUsuarioAndCurso(cursoID, cursoUsuario.Usuario.EntityID).Count;
                fila["diapositivasVistas"] = (cantidadDiapositivasVistas / cantidadDiapositivas) * 100;
                tablaCursosUsuarios.Rows.Add(fila);
            }
            // -- Filtro usuarios que no hicieron el curso
            List <Usuario> usuariosNoRealizaronCurso = usuariosEmpresa.Where(x => !cursosUsuarios.Select(y => y.Usuario.EntityID).Contains(x.EntityID)).ToList();
            // -- Recupero curso
            CursoDalc cursoDalc = new CursoDalc();
            var       curso     = cursoDalc.GetByID(cursoID);

            // -- Filtro los usuarios que no realizaron curso a solo los que tenian el nivel suficiente
            usuariosNoRealizaronCurso = usuariosNoRealizaronCurso.Where(x => x.Rol.Nivel >= curso.RolMinimo.Nivel).ToList();
            // -- Agrego usuario que no estan en usuariocursos
            foreach (Usuario usuario in usuariosNoRealizaronCurso)
            {
                // -- Creo fila
                DataRow fila = tablaCursosUsuarios.NewRow();
                // -- Asigno datos
                fila["usuario"] = usuario.NombreCompleto;
                fila["estado"]  = "No iniciado";
                // -- Asigno mensaje si no esta hecho
                fila["nota"] = "Sin Nota";
                //Recupero la cantidad de diapositivas que vio el usuario
                int cantidadDiapositivasVistas = diapositivaVistaDalc.GetByUsuarioAndCurso(cursoID, usuario.EntityID).Count;
                fila["diapositivasVistas"] = (cantidadDiapositivasVistas / cantidadDiapositivas) * 100;
                tablaCursosUsuarios.Rows.Add(fila);
            }
            return(tablaCursosUsuarios);
        }