/// <summary> /// Update all modified rows in DataTable /// </summary> /// <param name="tbl">DataTable with changed rows</param> public void Update(DataTable tbl) { Dalc.Update(tbl); }
/// <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); }
/// <summary> /// Agrega curso y carga archivos /// </summary> /// <param name="entity"></param> /// <param name="appPath"></param> /// <param name="fileStream"></param> public void AddCurso(Curso entity, string appPath, Stream fileStream) { // -- Seteo propiedades entity.Activo = true; entity.FechaAlta = DateTime.Now; // -- Cargado false porque aun no se suben archivos entity.Cargado = false; // -- Itero hasta obtener guid no usado bool flag = true; while (flag) { // -- Obtengo el friendly guid entity.FilesFolder = GuidEncoder.Encode(Guid.NewGuid()); // -- Obtengo si esta disponible bool disponible = Dalc.FilePathDisponible(entity.FilesFolder); if (disponible) { // -- Cambio flag flag = false; } } // -- Obtengo usuario logueado var usuarioLogueado = SessionManager.Get <Usuario>(Global.SessionsKeys.USER_SESSION); //Si el usuario no es administrador del sitio o administrador guardo la empresa if (usuarioLogueado.Rol.EntityID != Convert.ToInt64(Global.Roles.ADMINISTRADOR) || usuarioLogueado.Rol.EntityID != Convert.ToInt64(Global.Roles.ADMINISTRADOR_SITIO)) { entity.Empresa = new EmpresaLogic().GetByID(usuarioLogueado.Empresa.EntityID); } base.Add(entity); //Si es diferente de null implica que el curso lo creo una empresa, por lo tanto se lo asigno directamente if (entity.Empresa != null) { AsignarCursoEmpresa(entity.Empresa.EntityID, entity.EntityID); } #region Creacion de carpeta y subida de archivos // -- Concateno appPath += entity.FilesFolder; // -- Subida de archivos using (ZipFile zip = ZipFile.Read(fileStream)) { // -- Creo directorio System.IO.Directory.CreateDirectory(appPath); // -- Descomprimo zip.ExtractAll(appPath); } // -- Actualizo el estado de subida entity.Cargado = true; Dalc.Update(entity); #endregion // -- Copiar archivos en }
public bool Exists(string userName, string roleName) { return(Dalc.RecordsCount(UserRoleSourceName, (QField)ResolveFieldName("User") == (QConst)userName & (QField)ResolveFieldName("Role") == (QConst)roleName) > 0); }