/// <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); } }
/// <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); } }
/// <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); } }
/// <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); } }
/// <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; }
/// <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); } }
/// <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); } }
/// <summary> /// Constructor de clase cls_paginaPermiso /// </summary> public cls_paginaPermiso() { this.permiso = new cls_permiso(); this.pagina = new cls_pagina(); }
/// <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); } }
/// <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); } }
/// <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); } }