private void ProcesarNodosEnTreeView(TreeNode MyTreeNode, dbGeneralDataContext MydbGeneralDataContext, out bool bError, out String sErrMessage) { bError = false; sErrMessage = ""; Roles_FuncionesAplicacion MyRole_FuncionesAplicacion; foreach (TreeNode MyTreeNode_Child in MyTreeNode.ChildNodes) { if (MyTreeNode_Child.Checked) // registramos el nodo en la tabla { MyRole_FuncionesAplicacion = new Roles_FuncionesAplicacion(); MyRole_FuncionesAplicacion.RoleName = Roles_ListBox.SelectedValue; MyRole_FuncionesAplicacion.FunctionName = MyTreeNode_Child.Text; MydbGeneralDataContext.Roles_FuncionesAplicacions.InsertOnSubmit(MyRole_FuncionesAplicacion); try { MydbGeneralDataContext.SubmitChanges(); } catch (Exception ex) { ErrMessage_Span.InnerHtml = "Ha ocurrido un error al intentar efectuar una operación en la base de datos.<br />El mensaje específico de error es: " + ex.Message; ErrMessage_Span.Style["display"] = "block"; bError = true; sErrMessage = ex.Message; return; } } ProcesarNodosEnTreeView(MyTreeNode_Child, MydbGeneralDataContext, out bError, out sErrMessage); if (bError) { // ocurrió un error en la ejecución (recursiva) de la función return; } } }
protected void RegistrarAsociaciones_Button_Click(object sender, EventArgs e) { // el usuario debe haber seleccionado un rol if (Roles_ListBox.SelectedIndex == -1) { ErrMessage_Span.InnerHtml = "Ud. debe seleccionar un rol al cual asociar las funciones."; ErrMessage_Span.Style["display"] = "block"; return; } // primero eliminamos las funciones que ahora existen para el rol dbGeneralDataContext dbGeneral = new dbGeneralDataContext(); var query = from q in dbGeneral.Roles_FuncionesAplicacions where q.RoleName == Roles_ListBox.SelectedValue select q; foreach (var MyRolesFunciones in query) { dbGeneral.Roles_FuncionesAplicacions.DeleteOnSubmit(MyRolesFunciones); try { dbGeneral.SubmitChanges(); } catch (Exception ex) { ErrMessage_Span.InnerHtml = "Ha ocurrido un error al intentar efectuar una operación en la base de datos.<br />El mensaje específico de error es: " + ex.Message; ErrMessage_Span.Style["display"] = "block"; return; } } // recorremos los nodos seleccionados en el treeview y los guardamos en la tabla // Roles_FuncionesAplicacion para el rol seleccionado bool bError; String sErrMessage; Roles_FuncionesAplicacion MyRole_FuncionesAplicacion; foreach (TreeNode MyTreeNode in TreeView1.Nodes) { if (MyTreeNode.Checked) // registramos el nodo en la tabla { MyRole_FuncionesAplicacion = new Roles_FuncionesAplicacion(); MyRole_FuncionesAplicacion.RoleName = Roles_ListBox.SelectedValue; MyRole_FuncionesAplicacion.FunctionName = MyTreeNode.Text; dbGeneral.Roles_FuncionesAplicacions.InsertOnSubmit(MyRole_FuncionesAplicacion); try { dbGeneral.SubmitChanges(); } catch (Exception ex) { ErrMessage_Span.InnerHtml = "Ha ocurrido un error al intentar efectuar una operación en la base de datos.<br />El mensaje específico de error es: " + ex.Message; ErrMessage_Span.Style["display"] = "block"; return; } } ProcesarNodosEnTreeView(MyTreeNode, dbGeneral, out bError, out sErrMessage); if (bError) { // ocurrió un error en la ejecución (recursiva) de la función ErrMessage_Span.InnerHtml = "Ha ocurrido un error en la ejecución de este proceso.<br />El mensaje específico obtenido para el error es: " + sErrMessage; ErrMessage_Span.Style["display"] = "block"; return; } Message_Span.InnerHtml = "Ok, las funciones han sido asociadas al rol seleccionado."; Message_Span.Style["display"] = "block"; } }
partial void UpdateRoles_FuncionesAplicacion(Roles_FuncionesAplicacion instance);
partial void DeleteRoles_FuncionesAplicacion(Roles_FuncionesAplicacion instance);
partial void InsertRoles_FuncionesAplicacion(Roles_FuncionesAplicacion instance);