예제 #1
0
 /// <summary>
 /// Update all modified rows in DataTable
 /// </summary>
 /// <param name="tbl">DataTable with changed rows</param>
 public void Update(DataTable tbl)
 {
     Dalc.Update(tbl);
 }
예제 #2
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);
        }
예제 #3
0
        /// <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
        }
예제 #4
0
 public bool Exists(string userName, string roleName)
 {
     return(Dalc.RecordsCount(UserRoleSourceName,
                              (QField)ResolveFieldName("User") == (QConst)userName &
                              (QField)ResolveFieldName("Role") == (QConst)roleName) > 0);
 }