Ejemplo n.º 1
0
        /// <summary>
        /// Borra un curso
        /// </summary>
        /// <param name="cursoID"></param>
        public void BorrarCurso(long cursoID)
        {
            // -- Obtengo curso
            var curso = Dalc.GetByID(cursoID);

            // -- Obtengo preguntas
            PreguntaDalc pregDalc       = new PreguntaDalc();
            var          preguntasCurso = pregDalc.GetPreguntasByCurso(cursoID);

            // -- Obtengo CursosUsuarios
            CursoUsuarioDalc cuDalc = new CursoUsuarioDalc();
            var cursosUsuarios      = cuDalc.GetByCurso(cursoID);

            // -- Obtengo EmpresasCursos
            EmpresaCursoDalc ecDalc = new EmpresaCursoDalc();
            var empresasCursos      = ecDalc.GetByCurso(cursoID);

            // -- Obtengo diapositivas
            DiapositivaDalc diapositivaDalc = new DiapositivaDalc();
            var             diapositivas    = diapositivaDalc.GetByCurso(cursoID);

            // -- Obtengo diapositivas vistas
            DiapositivaVistaDalc    dvDalc             = new DiapositivaVistaDalc();
            List <DiapositivaVista> diapositivasVistas = new List <DiapositivaVista>();

            foreach (var d in diapositivas)
            {
                diapositivasVistas.AddRange(dvDalc.GetByDiapositiva(d.EntityID));
            }

            Dalc.BorrarCurso(curso, preguntasCurso, cursosUsuarios, empresasCursos, diapositivas, diapositivasVistas);
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Inserta una nueva diapositiva vista si no existe, o actualiza la fecha si existe
        /// </summary>
        /// <param name="diapositivaID"></param>
        public void AddOrUpdate(Diapositiva diapositiva)
        {
            // -- Obtengo usuario logueado
            var usuarioLogueado = SessionManager.Get <Usuario>(Global.SessionsKeys.USER_SESSION);

            DiapositivaVista dv = Dalc.GetByUsuarioAndDiapositiva(diapositiva.EntityID, usuarioLogueado.EntityID);

            //si no exista la diapositiva vista creo una nueva
            if (dv == null)
            {
                dv = new DiapositivaVista();
                DiapositivaDalc diapositivaDalc = new DiapositivaDalc();

                //asigno diapositiva y usuario
                dv.Diapositiva = diapositiva;

                dv.Usuario = usuarioLogueado;
                //actualizo la fecha vista
                dv.FechaHoraVista = DateTime.Now;

                Dalc.Add(dv);
            }
            else
            {
                //actualizo la fecha vista
                dv.FechaHoraVista = DateTime.Now;

                Dalc.Update(dv);
            }
        }
Ejemplo n.º 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);
        }