Example #1
0
        /// <summary>
        /// Método que permite eliminar 
        /// un registro en la tabla pagina
        /// </summary>
        /// <param name="poPagina">Pagina a eliminar</param>
        /// <returns>Int valor del resultado de la ejecución de la sentencia</returns>
        public static int deletePagina(cls_pagina poPagina)
        {
            int vi_resultado;

            try
            {
                String vs_comando = "PA_admi_paginaDelete";

                cls_parameter[] vu_parametros =
                {
                 		new cls_parameter("@paramPK_pagina", poPagina.pPK_pagina)
                };

                cls_sqlDatabase.beginTransaction();

                vi_resultado = cls_sqlDatabase.executeNonQuery(vs_comando, true, vu_parametros);

                cls_interface.insertarTransacccionBitacora(cls_constantes.ELIMINAR, cls_constantes.PAGINA, poPagina.pPK_pagina.ToString());

                cls_sqlDatabase.commitTransaction();

                return vi_resultado;

            }
            catch (Exception po_exception)
            {
                cls_sqlDatabase.rollbackTransaction();
                throw new Exception("Ocurrió un error al eliminar la página.", po_exception);
            }
        }
Example #2
0
        /// <summary>
        /// Método que permite insertar 
        /// un nuevo registro en la tabla pagina
        /// </summary>
        /// <param name="poPagina">Pagina a insertar</param>
        /// <returns>Int valor del resultado de la ejecución de la sentencia</returns>
        public static int insertPagina(cls_pagina poPagina)
        {
            int vi_resultado;
               cls_paginaPermiso vo_paginaPermiso = null;
            try
            {
                String vs_comando = "PA_admi_paginaInsert";

                cls_sqlDatabase.beginTransaction();

                if (poPagina.FK_menu != 0)
                {
                    cls_parameter[] vu_parametros =
                        {
                            new cls_parameter("@paramFK_menu", poPagina.FK_menu),
                            new cls_parameter("@paramnombre", poPagina.pNombre),
                            new cls_parameter("@paramurl", poPagina.pUrl),
                            new cls_parameter("@paramheight", poPagina.pHeight)
                        };

                    vi_resultado = cls_sqlDatabase.executeNonQuery(vs_comando, true, vu_parametros);
                }
                else
                {
                    cls_parameter[] vu_parametros =
                        {
                            new cls_parameter("@paramFK_menu", DBNull.Value),
                            new cls_parameter("@paramnombre", poPagina.pNombre),
                            new cls_parameter("@paramurl", poPagina.pUrl),
                            new cls_parameter("@paramheight", poPagina.pHeight)
                        };
                    vi_resultado = cls_sqlDatabase.executeNonQuery(vs_comando, true, vu_parametros);
                }

                poPagina.pPK_pagina =Convert.ToInt32( cls_gestorUtil.selectMax(cls_constantes.PAGINA, "PK_pagina"));

                cls_interface.insertarTransacccionBitacora(cls_constantes.INSERTAR, cls_constantes.PAGINA, poPagina.pPK_pagina.ToString(),poPagina.pUsuarioTransaccion);

                foreach(cls_permiso vo_permiso in poPagina.Permisos)
                {
                    vo_paginaPermiso = new cls_paginaPermiso();
                    vo_paginaPermiso.pPK_pagina = poPagina.pPK_pagina;
                    vo_paginaPermiso.pPK_permiso = vo_permiso.pPK_permiso;
                    vo_paginaPermiso.pUsuarioTransaccion = poPagina.pUsuarioTransaccion;

                    cls_gestorPaginaPermiso.insertPaginaPermiso(vo_paginaPermiso);
                }

                cls_sqlDatabase.commitTransaction();

                return vi_resultado;

            }
            catch (Exception po_exception)
            {
                cls_sqlDatabase.rollbackTransaction();
                throw new Exception("Ocurrió un error al insertar la página.", po_exception);
            }
        }
Example #3
0
        /// <summary>
        /// Método que permite actualizar 
        /// un registro en la tabla pagina
        /// </summary>
        /// <param name="poPagina">Pagina a actualizar</param>
        /// <returns>Int valor del resultado de la ejecución de la sentencia</returns>
        public static int updatePagina(cls_pagina poPagina)
        {
            int vi_resultado;

            try
            {
                String vs_comando = "PA_admi_paginaUpdate";

                cls_sqlDatabase.beginTransaction();

                if (poPagina.FK_menu != 0)
                {

                    cls_parameter[] vu_parametros =
                    {
                 	    new cls_parameter("@paramPK_pagina", poPagina.pPK_pagina),
                        new cls_parameter("@paramFK_menu", poPagina.FK_menu),
                        new cls_parameter("@paramnombre", poPagina.pNombre),
                        new cls_parameter("@paramurl", poPagina.pUrl),
                        new cls_parameter("@paramheight", poPagina.pHeight)
                    };
                    vi_resultado = cls_sqlDatabase.executeNonQuery(vs_comando, true, vu_parametros);
                }
                else
                {
                    cls_parameter[] vu_parametros =
                    {
                 	    new cls_parameter("@paramPK_pagina", DBNull.Value),
                        new cls_parameter("@paramFK_menu", poPagina.FK_menu),
                        new cls_parameter("@paramnombre", poPagina.pNombre),
                        new cls_parameter("@paramurl", poPagina.pUrl),
                        new cls_parameter("@paramheight", poPagina.pHeight)
                    };

                    vi_resultado = cls_sqlDatabase.executeNonQuery(vs_comando, true, vu_parametros);
                }

                cls_interface.insertarTransacccionBitacora(cls_constantes.MODIFICAR, cls_constantes.PAGINA, poPagina.pPK_pagina.ToString());

                cls_sqlDatabase.commitTransaction();

                return vi_resultado;

            }
            catch (Exception po_exception)
            {
                cls_sqlDatabase.rollbackTransaction();
                throw new Exception("Ocurrió un error al modificar la página.", po_exception);
            }
        }
Example #4
0
        /// <summary>
        /// Método que permite seleccionar  
        /// un único registro en la tabla pagina
        /// </summary>
        /// <returns>poPagina valor del resultado de la ejecución de la sentencia</returns>
        public static cls_pagina seleccionarPagina(cls_pagina poPagina)
        {
            try
               {
               String vs_comando = "PA_admi_paginaSelectOne";
               cls_parameter[] vu_parametros = {
                                                   new cls_parameter("@paramPK_pagina", poPagina.pPK_pagina)
                                               };

               DataSet vu_dataSet = cls_sqlDatabase.executeDataset(vs_comando, true, vu_parametros);

               poPagina = new cls_pagina();

               poPagina.pPK_pagina = Convert.ToInt32(vu_dataSet.Tables[0].Rows[0]["PK_pagina"]);

               poPagina.FK_menu = Convert.ToInt32(vu_dataSet.Tables[0].Rows[0]["FK_menu"]);

               poPagina.pNombre = vu_dataSet.Tables[0].Rows[0]["nombre"].ToString();

               poPagina.pUrl = vu_dataSet.Tables[0].Rows[0]["url"].ToString();

               poPagina.pHeight = vu_dataSet.Tables[0].Rows[0]["height"].ToString();

               return poPagina;

               }
               catch (Exception po_exception)
               {
               throw new Exception("Ocurrió un error al seleccionar la página específica.", po_exception);
               }
        }
Example #5
0
        /// <summary>
        /// Obtiene los permisos
        /// asociados a una página
        /// esto para determinar si
        /// el usuario posee privilegios
        /// para realizar las diferentes opciones
        /// en el sistema.
        /// </summary>
        /// <param name="psUrl">String url de la página.</param>
        /// <param name="piRol">Int código del rol.</param>
        /// <returns>cls_pagina con los datos necesarios para el manejo de los permisos asociados.</returns>
        public static cls_pagina obtenerPermisoPaginaRol(string psUrl, int piRol)
        {
            List<cls_permiso> loPermisos = null;
               cls_permiso loPermiso = null;
               cls_pagina loPagina = null;
               try
               {
               String vs_comando = "PA_admi_selectPaginaRolPermisos";
               cls_parameter[] vu_parametros = {
                                                    new cls_parameter("@paramPagina", psUrl) ,
                                                    new cls_parameter("@paramRol", piRol) ,
                                                };

               DataSet vu_dataSet = cls_sqlDatabase.executeDataset(vs_comando, true, vu_parametros);

               loPermisos = new List<cls_permiso>();

               for (int i = 0; i < vu_dataSet.Tables[0].Rows.Count; i++)
               {
                   loPermiso = new cls_permiso();

                   loPermiso.pPK_permiso = Convert.ToInt32(vu_dataSet.Tables[0].Rows[i]["PK_permiso"]);

                   loPermiso.pNombre = vu_dataSet.Tables[0].Rows[i]["nombre"].ToString();

                   loPermisos.Add(loPermiso);
               }

               loPagina = new cls_pagina();
               loPagina.pUrl = psUrl;
               loPagina.Permisos = loPermisos;

               }
               catch (Exception po_exception)
               {
               throw new Exception("Ocurrió un error al obtener los permisos de una página.", po_exception);
               }

               return loPagina;
        }
Example #6
0
        /// <summary>
        /// Hace un lista de páginas con un filtrado específico.
        /// </summary>
        /// <param name="psFiltro">String filtro.</param>
        /// <returns></returns>
        public static List<cls_pagina> listarPaginaFiltro(string psFiltro)
        {
            List<cls_pagina> vo_lista = null;
               cls_pagina voPagina = null;
               try
               {
               DataSet vu_dataSet = cls_gestorUtil.selectFilter(cls_constantes.PAGINA, string.Empty, psFiltro);

               vo_lista = new List<cls_pagina>();

               for (int i = 0; i < vu_dataSet.Tables[0].Rows.Count; i++)
               {
                   voPagina = new cls_pagina();

                   voPagina.pPK_pagina = Convert.ToInt32(vu_dataSet.Tables[0].Rows[i]["PK_pagina"]);

                   voPagina.pNombre = string.IsNullOrEmpty(vu_dataSet.Tables[0].Rows[i]["nombre"].ToString()) ? string.Empty : vu_dataSet.Tables[0].Rows[i]["nombre"].ToString();

                   voPagina.pUrl = string.IsNullOrEmpty(vu_dataSet.Tables[0].Rows[i]["url"].ToString()) ? string.Empty : vu_dataSet.Tables[0].Rows[i]["url"].ToString();

                   vo_lista.Add(voPagina);
               }

               return vo_lista;
               }
               catch (Exception po_exception)
               {
               throw new Exception("Ocurrió un error al obtener el listado de los páginas de manera filtrada.", po_exception);
               }
        }
Example #7
0
        /// <summary>
        /// Método que permite listar 
        /// todos los registros en la tabla pagina
        /// </summary>
        /// <returns> List<cls_pagina>  valor del resultado de la ejecución de la sentencia</returns>
        public static List<cls_pagina> listarPagina()
        {
            List<cls_pagina> vo_lista = null;
               cls_pagina poPagina = null;
               try
               {
               String vs_comando = "PA_admi_paginaSelect";
               cls_parameter[] vu_parametros = { };

               DataSet vu_dataSet = cls_sqlDatabase.executeDataset(vs_comando, true, vu_parametros);

               vo_lista = new List<cls_pagina>();
               for (int i = 0; i < vu_dataSet.Tables[0].Rows.Count; i++)
               {
                   poPagina = new cls_pagina();

                   poPagina.pPK_pagina = Convert.ToInt32(vu_dataSet.Tables[0].Rows[i]["PK_pagina"]);

                   poPagina.FK_menu = Convert.ToInt32(vu_dataSet.Tables[0].Rows[i]["FK_menu"]);

                   poPagina.pNombre = vu_dataSet.Tables[0].Rows[i]["nombre"].ToString();

                   poPagina.pUrl = vu_dataSet.Tables[0].Rows[i]["url"].ToString();

                   poPagina.pHeight = vu_dataSet.Tables[0].Rows[i]["height"].ToString();

                   vo_lista.Add(poPagina);
               }

               return vo_lista;
               }
               catch (Exception po_exception)
               {
               throw new Exception("Ocurrió un error al obtener el listado de las páginas.", po_exception);
               }
        }
        /// <summary>
        /// Método que elimina un pagina
        /// </summary>
        /// <param name="po_pagina">Permiso a eliminar</param>
        private void eliminarDatos(cls_pagina po_pagina)
        {
            try
            {
                cls_gestorPagina.deletePagina(po_pagina);

                this.llenarGridView();

                this.upd_Principal.Update();
            }
            catch (Exception po_exception)
            {
                throw new Exception("Ocurrió un error eliminando la página. Es posible que exista un registro asociado a este página.", po_exception);
            }
        }
        /// <summary>
        /// Crea un objeto de tipo
        /// cls_pagina con la informacón
        /// que se encuentra en el formulario
        /// web
        /// </summary>
        /// <returns>cls_pagina</returns>
        private cls_pagina crearObjeto()
        {
            cls_pagina vo_pagina = new cls_pagina();
            if (cls_variablesSistema.tipoEstado != cls_constantes.AGREGAR)
            {
                vo_pagina = (cls_pagina)cls_variablesSistema.obj;
            }
            try
            {
                vo_pagina.pNombre = txt_nombre.Text;
                vo_pagina.pUrl = txt_url.Text;
                vo_pagina.FK_menu = this.ddl_menu.SelectedIndex;
                vo_pagina.pHeight = this.txt_largo.Text;

                vo_pagina.Permisos = new List<cls_permiso>();
                cls_permiso vo_permiso = null;

                foreach (TreeNode vo_nodo in this.trv_permisos.CheckedNodes)
                {
                    vo_permiso = new cls_permiso();
                    vo_permiso.pPK_permiso = Convert.ToInt32(vo_nodo.Value);
                    vo_permiso.pNombre = vo_nodo.Text;

                    vo_pagina.Permisos.Add(vo_permiso);
                }

                return vo_pagina;
            }
            catch (Exception po_exception)
            {
                throw new Exception("Ocurrió un error al crear el objeto para guardar el registro.", po_exception);
            }
        }
        /// <summary>
        /// Cuando se seleccionada un botón del grid.
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void grd_listaPaginas_RowCommand(object sender, GridViewCommandEventArgs e)
        {
            try
            {
                int vi_indice = Convert.ToInt32(e.CommandArgument);

                GridViewRow vu_fila = this.grd_listaPaginas.Rows[vi_indice];

                cls_pagina vo_pagina = new cls_pagina();

                vo_pagina.pPK_pagina = Convert.ToInt32(vu_fila.Cells[0].Text.ToString());
                vo_pagina.pNombre = vu_fila.Cells[0].Text.ToString();
                vo_pagina.pUrl = vu_fila.Cells[0].Text.ToString();

                switch (e.CommandName.ToString())
                {
                    case cls_constantes.VER:
                        vo_pagina = cls_gestorPagina.seleccionarPagina(vo_pagina);

                        cls_variablesSistema.obj = vo_pagina;

                        cls_variablesSistema.tipoEstado = e.CommandName;

                        this.cargarObjeto();

                        this.ard_principal.SelectedIndex = 1;
                        break;

                    case cls_constantes.EDITAR:
                        vo_pagina = cls_gestorPagina.seleccionarPagina(vo_pagina);

                        cls_variablesSistema.obj = vo_pagina;

                        cls_variablesSistema.tipoEstado = e.CommandName;

                        this.cargarObjeto();

                        this.ard_principal.SelectedIndex = 1;
                        break;

                    case cls_constantes.ELIMINAR:
                        if (!cls_interface.verificarRegistrosPermanentes(COSEVI.CSLA.lib.accesoDatos.App_Constantes.cls_constantes.PAGINA, vo_pagina.pPK_pagina.ToString()))
                        {
                            this.eliminarDatos(vo_pagina);
                        }
                        else
                        {
                            //Se levanta PopUp indicando que no se puede eliminar el registro
                            this.mpe_RegistroPermante.Show();
                            inicializarControles();
                        }
                        break;

                    default:
                        break;
                }

            }
            catch (Exception po_exception)
            {
                String vs_error_usuario = "Ocurrió un error al intentar mostrar la ventana de edición para los registros.";
                this.lanzarExcepcion(po_exception, vs_error_usuario);
            }
        }
Example #11
0
 /// <summary>
 /// Constructor de clase cls_paginaPermiso
 /// </summary>
 public cls_paginaPermiso()
 {
     this.permiso = new cls_permiso();
     this.pagina = new cls_pagina();
 }
Example #12
0
        /// <summary>
        /// Método que permite actualizar 
        /// un registro en la tabla pagina
        /// </summary>
        /// <param name="poPagina">Pagina a actualizar</param>
        /// <returns>Int valor del resultado de la ejecución de la sentencia</returns>
        public static int updatePagina(cls_pagina poPagina)
        {
            int vi_resultado;
            cls_paginaPermiso vo_paginaPermiso = null;
            cls_pagina vo_pagina = null;
            try
            {
                String vs_comando = "PA_admi_paginaUpdate";

                cls_sqlDatabase.beginTransaction();

                if (poPagina.FK_menu != 0)
                {

                    cls_parameter[] vu_parametros =
                    {
                 	    new cls_parameter("@paramPK_pagina", poPagina.pPK_pagina),
                        new cls_parameter("@paramFK_menu", poPagina.FK_menu),
                        new cls_parameter("@paramnombre", poPagina.pNombre),
                        new cls_parameter("@paramurl", poPagina.pUrl),
                        new cls_parameter("@paramheight", poPagina.pHeight)
                    };
                    vi_resultado = cls_sqlDatabase.executeNonQuery(vs_comando, true, vu_parametros);
                }
                else
                {
                    cls_parameter[] vu_parametros =
                    {
                 	    new cls_parameter("@paramPK_pagina", DBNull.Value),
                        new cls_parameter("@paramFK_menu", poPagina.FK_menu),
                        new cls_parameter("@paramnombre", poPagina.pNombre),
                        new cls_parameter("@paramurl", poPagina.pUrl),
                        new cls_parameter("@paramheight", poPagina.pHeight)
                    };

                    vi_resultado = cls_sqlDatabase.executeNonQuery(vs_comando, true, vu_parametros);
                }

                cls_interface.insertarTransacccionBitacora(cls_constantes.MODIFICAR, cls_constantes.PAGINA, poPagina.pPK_pagina.ToString(), poPagina.pUsuarioTransaccion);

                vo_pagina = new cls_pagina();
                vo_pagina.pPK_pagina = poPagina.pPK_pagina;

                vo_pagina = cls_gestorPagina.seleccionarPagina(vo_pagina);

                foreach (cls_permiso vo_permiso in poPagina.Permisos)
                {
                    if (!vo_pagina.Permisos.Exists(c => c.pPK_permiso == vo_permiso.pPK_permiso))
                    {
                        vo_paginaPermiso = new cls_paginaPermiso();
                        vo_paginaPermiso.pPK_pagina = poPagina.pPK_pagina;
                        vo_paginaPermiso.pPK_permiso = vo_permiso.pPK_permiso;
                        vo_paginaPermiso.pUsuarioTransaccion = poPagina.pUsuarioTransaccion;
                        cls_gestorPaginaPermiso.insertPaginaPermiso(vo_paginaPermiso);
                    }
                }

                foreach (cls_permiso vo_permiso in vo_pagina.Permisos)
                {
                    if (!poPagina.Permisos.Exists(c => c.pPK_permiso == vo_permiso.pPK_permiso))
                    {
                        vo_paginaPermiso = new cls_paginaPermiso();
                        vo_paginaPermiso.pPK_pagina = poPagina.pPK_pagina;
                        vo_paginaPermiso.pPK_permiso = vo_permiso.pPK_permiso;
                        vo_paginaPermiso.pUsuarioTransaccion = poPagina.pUsuarioTransaccion;
                        cls_gestorPaginaPermiso.deletePaginaPermiso(vo_paginaPermiso);
                    }
                }

                cls_sqlDatabase.commitTransaction();

                return vi_resultado;

            }
            catch (Exception po_exception)
            {
                cls_sqlDatabase.rollbackTransaction();
                throw new Exception("Ocurrió un error al modificar la página.", po_exception);
            }
        }
Example #13
0
        /// <summary>
        /// Obtiene la lista de permisos para el rol
        /// según lo seleccionado en el treeview.
        /// </summary>
        /// <returns></returns>
        private List<cls_pagina> ObtenerPermisos()
        {
            List<cls_pagina> vo_permisos = null;
            cls_pagina vo_pagina = null;
            String[] vo_codigo = null;

            try
            {
                vo_permisos = new List<cls_pagina>();

                foreach (TreeNode nodo in this.trv_menu.CheckedNodes)
                {
                    vo_codigo = nodo.Value.ToString().Split('/');

                    if (vo_codigo != null && vo_codigo.Count() == 3)
                    {
                        vo_pagina = new cls_pagina();

                        vo_pagina.pPK_pagina = Convert.ToInt32(vo_codigo[1]);

                        if (!vo_permisos.Exists(c => c.pPK_pagina == Convert.ToInt32(vo_codigo[1])))
                        {
                            vo_permisos.Add(vo_pagina);
                        }
                        else
                        {
                            vo_pagina = vo_permisos.Find(c => c.pPK_pagina == Convert.ToInt32(vo_codigo[1]));
                        }

                        vo_pagina.Permisos.Add(new cls_permiso() { pPK_permiso = Convert.ToInt32(vo_codigo[2]) });
                    }
                }
            }
            catch (Exception po_exception)
            {
                throw new Exception("Ocurrió un error al obtener los permisos del rol.", po_exception);
            }

            return vo_permisos;
        }
        /// <summary>
        /// Método que permite 
        /// obtener las asociación que exite
        /// entre las páginas y los permisos.
        /// </summary>
        /// <param name="poPagina">cls_permiso</param>
        /// <returns>List</returns>
        public static List<cls_permiso> listarPaginaPermiso(cls_pagina poPagina)
        {
            List<cls_permiso> vo_lista = null;
               cls_permiso voPermiso = null;
               try
               {
               String vs_comando = "PA_admi_paginaPermisoSelect";
               cls_parameter[] vu_parametros = {
                                                   new cls_parameter("@paramPagina", poPagina.pPK_pagina)
                                               };

               DataSet vu_dataSet = cls_sqlDatabase.executeDataset(vs_comando, true, vu_parametros);

               vo_lista = new List<cls_permiso>();

               for (int i = 0; i < vu_dataSet.Tables[0].Rows.Count; i++)
               {
                   voPermiso = new cls_permiso();

                   voPermiso.pPK_permiso = Convert.ToInt32(vu_dataSet.Tables[0].Rows[i]["PK_permiso"]);

                   vo_lista.Add(voPermiso);
               }

               return vo_lista;
               }
               catch (Exception po_exception)
               {
               throw new Exception("Ocurrió un error al obtener el listado de los páginas de manera filtrada.", po_exception);
               }
        }
Example #15
0
 /// <summary>
 /// Crea un objeto de tipo
 /// cls_pagina con la informacón
 /// que se encuentra en el formulario
 /// web
 /// </summary>
 /// <returns>cls_pagina</returns>
 private cls_pagina crearObjeto()
 {
     cls_pagina vo_pagina = new cls_pagina();
     if (cls_variablesSistema.tipoEstado != cls_constantes.AGREGAR)
     {
         vo_pagina = (cls_pagina)cls_variablesSistema.obj;
     }
     try
     {
         vo_pagina.pNombre = txt_nombre.Text;
         vo_pagina.pUrl = txt_url.Text;
         vo_pagina.FK_menu = this.ddl_menu.SelectedIndex;
         vo_pagina.pHeight = this.txt_largo.Text;
         return vo_pagina;
     }
     catch (Exception po_exception)
     {
         throw new Exception("Ocurrió un error al crear el objeto para guardar el registro.", po_exception);
     }
 }
        /// <summary>
        /// Método que permite seleccionar  
        /// un único registro en la tabla rol
        /// </summary>
        /// <returns>poRol valor del resultado de la ejecución de la sentencia</returns>
        public static cls_rol seleccionarRol(cls_rol poRol)
        {
            DataTable vo_permisos = null;
            cls_pagina vo_pagina = null;
            cls_permiso vo_permiso = null;

            try
            {
                String vs_comando = "PA_admi_rolSelectOne";
                cls_parameter[] vu_parametros = {
                                                   new cls_parameter("@paramPK_rol", poRol.pPK_rol)
                                               };

                DataSet vu_dataSet = cls_sqlDatabase.executeDataset(vs_comando, true, vu_parametros);

                poRol = new cls_rol();

                poRol.pPK_rol = Convert.ToInt32(vu_dataSet.Tables[0].Rows[0]["PK_rol"]);

                poRol.pDescripcion = vu_dataSet.Tables[0].Rows[0]["descripcion"].ToString();

                poRol.pNombre = vu_dataSet.Tables[0].Rows[0]["nombre"].ToString();

                poRol.pVisible = Convert.ToBoolean(vu_dataSet.Tables[0].Rows[0]["visible"]);

                //Se cargan los permisos de un rol.
                vo_permisos = cls_gestorRolPaginaPermiso.listarPermisosUsuario(poRol);

                if (vo_permisos != null && vo_permisos.Rows.Count > 0)
                {
                    //Se seleccionan los las diferentes páginas
                    var paginas = (from pagina in vo_permisos.AsEnumerable()
                                   select new
                                   {
                                       PAGINA = pagina.Field<Int32>("PK_pagina")
                                   }).Distinct();

                    foreach (var pagina in paginas)
                    {

                        // Se crea la pagina
                        vo_pagina = new cls_pagina();
                        vo_pagina.pPK_pagina = pagina.PAGINA;

                        //Se obtienen los permisos
                        var permisos = from permiso in vo_permisos.AsEnumerable()
                                       where permiso.Field<Int32>("PK_pagina") == pagina.PAGINA
                                       select new
                                       {
                                           PERMISO = permiso.Field<Int32>("PK_permiso")
                                       };

                        foreach(var permiso in permisos)
                        {
                            vo_permiso = new cls_permiso();
                            vo_permiso.pPK_permiso = permiso.PERMISO;

                            vo_pagina.Permisos.Add(vo_permiso);
                        }

                        poRol.Paginas.Add(vo_pagina);

                    }

                }

                return poRol;

            }
            catch (Exception po_exception)
            {
                throw new Exception("Ocurrió un error al obtener el rol especificado.", po_exception);
            }
        }