/// <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); }
/// <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); }