public static bool Nuevo(List<Entidades.MenuXrol> a) { try { using (ISession session = NHibernateHelper.OpenSession()) { a.ForEach(delegate (Entidades.MenuXrol menuRol) { Entidades.Menu m = session.Load<Entidades.Menu>(menuRol.IdMenu.IdMenu); Entidades.MenuXrol c = new Entidades.MenuXrol(); c.IdMenu = m; c.IdRol = menuRol.IdRol; m.MenuXrol.Add(c); session.Save(c); session.Flush(); }); } } catch { return false; } return true; }
protected void btnGuardar_Click(object sender, EventArgs e) { permisos = Negocio.Seguridad.Seguridad.verificarPermisos(); Entidades.Logica.Ejecucion resultado = new Entidades.Logica.Ejecucion(); List<Entidades.MenuXrol> listMenu = new List<Entidades.MenuXrol>(); if (hdfEstado.Value == "1" && permisos.C) { Entidades.RolUsuario nuevoRol = new Entidades.RolUsuario() { NombreRol = txtNombre.Text, C = cbxCrear.Checked, R = cbxConsultar.Checked, U = cbxEditar.Checked, D = cbxEliminar.Checked }; foreach (RepeaterItem item in rptMenu.Items) { int cont = 0; HiddenField idMenu = (HiddenField)item.FindControl("hdfIdMenu"); int IdMenu = Convert.ToInt32(idMenu.Value); CheckBox cbxMenu = (CheckBox)item.FindControl("cbxMenu"); CheckBoxList cblSubmenu1 = (CheckBoxList)item.FindControl("cblSubmenu1"); foreach (ListItem cbxItem in cblSubmenu1.Items) { if (cbxItem.Selected) { Entidades.MenuXrol m = new Entidades.MenuXrol(); m.IdMenu.IdMenu = Convert.ToInt32(cbxItem.Value); listMenu.Add(m); cont++; } } if(cont > 0) { Entidades.MenuXrol m = new Entidades.MenuXrol(); m.IdMenu.IdMenu = IdMenu; listMenu.Add(m); } if(cbxMenu.Visible) { if(cbxMenu.Checked) { Entidades.MenuXrol m = new Entidades.MenuXrol(); m.IdMenu.IdMenu = Convert.ToInt32(IdMenu); listMenu.Add(m); } } } resultado = Negocio.Seguridad.RolUsuario.Nuevo(nuevoRol,listMenu); } else if (hdfEstado.Value == "2" && permisos.U) { int IdRol = Convert.ToInt32(lblIdRol.Text); Entidades.RolUsuario nuevoRol = new Entidades.RolUsuario() { IdRol = Convert.ToInt32(lblIdRol.Text), NombreRol = txtNombre.Text, C = cbxCrear.Checked, R = cbxConsultar.Checked, U = cbxEditar.Checked, D = cbxEliminar.Checked }; foreach (RepeaterItem item in rptMenu.Items) { int cont = 0; HiddenField idMenu = (HiddenField)item.FindControl("hdfIdMenu"); int IdMenu = Convert.ToInt32(idMenu.Value); CheckBox cbxMenu = (CheckBox)item.FindControl("cbxMenu"); CheckBoxList cblSubmenu1 = (CheckBoxList)item.FindControl("cblSubmenu1"); foreach (ListItem cbxItem in cblSubmenu1.Items) { if (cbxItem.Selected) { Entidades.MenuXrol m = new Entidades.MenuXrol(); m.IdMenu.IdMenu = Convert.ToInt32(cbxItem.Value); m.IdRol.IdRol = IdRol; listMenu.Add(m); cont++; } } if (cont > 0) { Entidades.MenuXrol m = new Entidades.MenuXrol(); m.IdMenu.IdMenu = IdMenu; m.IdRol.IdRol = IdRol; listMenu.Add(m); } if (cbxMenu.Visible) { if (cbxMenu.Checked) { Entidades.MenuXrol m = new Entidades.MenuXrol(); m.IdMenu.IdMenu = Convert.ToInt32(IdMenu); m.IdRol.IdRol = IdRol; listMenu.Add(m); } } } resultado = Negocio.Seguridad.RolUsuario.Actualizar(nuevoRol, listMenu); } else { lblResultado.Text = "No tienes privilegios para realizar esta acción."; } resultado.errores.ForEach(delegate (Entidades.Logica.Error error) { lblResultado.Text += error.descripcionCorta + "<br/>"; }); //lblResultado.ForeColor = System.Drawing.Color.Red; lblResultado.Attributes["style"] = "color: #F00;"; pnlResultado.Attributes["style"] = "background: rgba(252, 55, 55, 0.2);"; if (resultado.resultado == true) { //lblResultado.ForeColor = System.Drawing.Color.Green; lblResultado.Attributes["style"] = "color: #008000;"; pnlResultado.Attributes["style"] = "background: rgba(147, 252, 55, 0.22);"; hdfEstado.Value = "0"; btnNuevo.Visible = true; btnNuevo.Text = "Nuevo"; pnlFormRol.Visible = false; pnlRoles.Visible = true; llenarGdvRoles(); } pnlResultado.Visible = true; }