/// <summary> /// /// </summary> /// <returns></returns> public List <GrupoPermiso> ObtenerGrupoPermiso() { List <GrupoPermiso> listGrupoPermiso = new List <GrupoPermiso>(); using (SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["MotoPoint"].ConnectionString)) { using (SqlCommand cmdSelect = new SqlCommand("SELECT * FROM tbl_GrupoPermisos", con)) { try { con.Open(); using (var reader = cmdSelect.ExecuteReader()) { while (reader.Read()) { GrupoPermiso oGrupoPermiso = new GrupoPermiso(); oGrupoPermiso.IdGrupo = Convert.ToInt32(reader["IdGrupo"]); oGrupoPermiso.IdPermiso = Convert.ToInt32(reader["idPermisos"]); listGrupoPermiso.Add(oGrupoPermiso); } } con.Close(); } catch (Exception ex) { con.Close(); throw new EXCEPCIONES.DALExcepcion(ex.Message); } } return(listGrupoPermiso); } }
public ActionResult Eliminar(int txtIdGrupo) { using (var bd = new BDDemoLoginEntities()) { using (var transaccion = new System.Transactions.TransactionScope()) { Grupo oGrupo = bd.Grupo.Where(p => p.IDGRUPO == txtIdGrupo).First(); oGrupo.HABILITADO = 0; // borra permisos existentes int cantPermisos = bd.GrupoPermiso.Where(p => p.IDGRUPO == txtIdGrupo).Count(); for (int i = 0; i < cantPermisos; i++) { GrupoPermiso oGrupoPermiso = bd.GrupoPermiso.Where(p => p.IDGRUPO == txtIdGrupo).First(); oGrupoPermiso.HABILITADO = 0; } bd.SaveChanges(); transaccion.Complete(); } } return(RedirectToAction("Index")); }
public ActionResult Agregar(GrupoCLS oGrupoCLS, FormCollection form) { string[] permisosSeleccionados = null; if (form["permisos"] != null) { permisosSeleccionados = form["permisos"].Split(','); } int numPermisosSeleccionados = 0; if (permisosSeleccionados != null) { numPermisosSeleccionados = permisosSeleccionados.Count(); } //try //{ int numRegistrosEncontrados = 0; using (var bd = new BDDemoLoginEntities()) { numRegistrosEncontrados = bd.Grupo.Where(p => p.NOMBREGRUPO == oGrupoCLS.nombreGrupo).Count(); } if (!ModelState.IsValid || numRegistrosEncontrados >= 1 || numPermisosSeleccionados < 1) { if (numRegistrosEncontrados >= 1) { oGrupoCLS.mensajeErrorNombre = "El nombre de grupo ya existe "; } if (numPermisosSeleccionados < 1) { oGrupoCLS.mensajeErrorPermiso = "Debe Seleccionar por lo menos un permiso"; } listarPermiso(); return(View(oGrupoCLS)); } else { using (var bd = new BDDemoLoginEntities()) { using (var transaccion = new System.Transactions.TransactionScope()) { Grupo oGrupo = new Grupo(); oGrupo.NOMBREGRUPO = oGrupoCLS.nombreGrupo; oGrupo.HABILITADO = 1; bd.Grupo.Add(oGrupo); for (int i = 0; i < numPermisosSeleccionados; i++) { GrupoPermiso oGrupoPermiso = new GrupoPermiso(); oGrupoPermiso.IDGRUPO = oGrupoCLS.idGrupo; oGrupoPermiso.IDPERMISO = int.Parse(permisosSeleccionados[i]); oGrupoPermiso.HABILITADO = 1; bd.GrupoPermiso.Add(oGrupoPermiso); } bd.SaveChanges(); transaccion.Complete(); } } } //} //catch(Exception ex) //{ //} return(RedirectToAction("Index")); }
public List <PermisoComponente> ObtenerPermisos() { try { var lstPermisos = new List <PermisoComponente>(); string query = ""; query = $@"with Recursivo as ( select sp2.IdPadre, sp2.IdHijo from PermisoPermiso SP2 where sp2.IdPadre is null UNION ALL select sp.IdPadre, sp.IdHijo from PermisoPermiso sp inner join Recursivo r on r.IdHijo = sp.IdPadre ) select r.IdPadre, r.IdHijo, p.Id, p.Descripcion, p.EsPermiso from recursivo r inner join Permiso p on (r.IdHijo = p.Id) "; var dtPermisos = _accesoBaseDeDatos.Seleccionar(query, null); if (dtPermisos.Rows.Count == 0) { return(null); } foreach (DataRow row in dtPermisos.Rows) { int idPadre = 0; if (row["IdPadre"] != DBNull.Value) { idPadre = Convert.ToInt32(row["IdPadre"]); } var id = Convert.ToInt32(row["Id"]); var descripcion = row["Descripcion"].ToString().Trim(); var esPermiso = Convert.ToBoolean(row["EsPermiso"].ToString().Trim()); PermisoComponente componente; if (!esPermiso) { componente = new GrupoPermiso(); } else { componente = new BE.Composite.Permiso(); } componente.Id = id; componente.Descripcion = descripcion; var padre = ObtenerComponente(idPadre, lstPermisos); if (padre == null) { lstPermisos.Add(componente); } else { padre.Agregar(componente); } } return(lstPermisos); } catch (Exception e) { Console.WriteLine(e); throw; } }
//private List<PermisoComponente> ObtenerPermisos(string idPermiso) //{ // try // { // var lstPermisos = new List<PermisoComponente>(); // var pars = new IDbDataParameter[1]; // string query = ""; // if (!String.IsNullOrEmpty(idPermiso)) // { // var where = idPermiso; // pars[0] = _accesoBaseDeDatos.CrearParametro("@Condicion", Convert.ToInt32(where)); // //query = $@"with Recursivo as ( select sp2.IdPadre, sp2.IdHijo // // from PermisoPermiso SP2 // // where sp2.IdPadre = @Condicion // // UNION ALL // // select sp.IdPadre, sp.IdHijo // // from PermisoPermiso sp // // inner join Recursivo r on r.IdHijo = sp.IdPadre // // ) // // select r.IdPadre, r.IdHijo, p.Id, p.Descripcion, p.EsPermiso // // from recursivo r // // inner join Permiso p on (r.IdHijo = p.Id) // // "; // query = $@"with Recursivo as ( select sp2.IdPadre, sp2.IdHijo // from PermisoPermiso SP2 // where sp2.IdPadre = @Condicion // UNION ALL // select sp.IdPadre, sp.IdHijo // from PermisoPermiso sp // inner join Recursivo r on r.IdHijo = sp.IdPadre // ) // select perper.IdPadre, perper.IdHijo, p.Id, p.Descripcion, p.EsPermiso // from PermisoPermiso perper // inner join Permiso p on (perper.IdHijo = p.Id) // where p.Id = @Condicion // union all // select r.IdPadre, r.IdHijo, p.Id, p.Descripcion, p.EsPermiso // from recursivo r // inner join Permiso p on (r.IdHijo = p.Id) // "; // } // else // { // pars = null; // query = $@"with Recursivo as ( select sp2.IdPadre, sp2.IdHijo // from PermisoPermiso SP2 // where sp2.IdPadre is null // UNION ALL // select sp.IdPadre, sp.IdHijo // from PermisoPermiso sp // inner join Recursivo r on r.IdHijo = sp.IdPadre // ) // select r.IdPadre, r.IdHijo, p.Id, p.Descripcion, p.EsPermiso // from recursivo r // inner join Permiso p on (r.IdHijo = p.Id) // "; // } // var dtPermisos = _accesoBaseDeDatos.Seleccionar(query, pars); // if (dtPermisos.Rows.Count == 0) // return null; // foreach (DataRow row in dtPermisos.Rows) // { // int idPadre = 0; // if (row["IdPadre"] != DBNull.Value) // { // idPadre = Convert.ToInt32(row["IdPadre"]); // } // var id = Convert.ToInt32(row["Id"]); // var descripcion = row["Descripcion"].ToString().Trim(); // var esPermiso = Convert.ToBoolean(row["EsPermiso"].ToString().Trim()); // PermisoComponente componente; // if (!esPermiso) // componente = new GrupoPermiso(); // else // componente = new BE.Composite.Permiso(); // componente.Id = id; // componente.Descripcion = descripcion; // var padre = ObtenerComponente(idPadre, lstPermisos); // if (padre == null) // { // lstPermisos.Add(componente); // } // else // { // padre.Agregar(componente); // } // } // return lstPermisos; // } // catch (Exception e) // { // Console.WriteLine(e); // throw; // } //} private PermisoComponente ObtenerPermisos(string idPermiso) { try { var lstPermisos = new List <PermisoComponente>(); var pars = new IDbDataParameter[1]; string query = ""; if (!String.IsNullOrEmpty(idPermiso)) { var where = idPermiso; pars[0] = _accesoBaseDeDatos.CrearParametro("@Condicion", Convert.ToInt32(where)); //query = $@"with Recursivo as ( select sp2.IdPadre, sp2.IdHijo // from PermisoPermiso SP2 // where sp2.IdPadre = @Condicion // UNION ALL // select sp.IdPadre, sp.IdHijo // from PermisoPermiso sp // inner join Recursivo r on r.IdHijo = sp.IdPadre // ) // select r.IdPadre, r.IdHijo, p.Id, p.Descripcion, p.EsPermiso // from recursivo r // inner join Permiso p on (r.IdHijo = p.Id) // "; query = $@"with Recursivo as ( select sp2.IdPadre, sp2.IdHijo from PermisoPermiso SP2 where sp2.IdPadre = @Condicion UNION ALL select sp.IdPadre, sp.IdHijo from PermisoPermiso sp inner join Recursivo r on r.IdHijo = sp.IdPadre ) select perper.IdPadre, perper.IdHijo, p.Id, p.Descripcion, p.EsPermiso from PermisoPermiso perper right join Permiso p on (perper.IdHijo = p.Id) where p.Id = @Condicion union all select r.IdPadre, r.IdHijo, p.Id, p.Descripcion, p.EsPermiso from recursivo r inner join Permiso p on (r.IdHijo = p.Id) "; } else { pars = null; query = $@" with Recursivo as ( select sp2.IdPadre, sp2.IdHijo from PermisoPermiso SP2 where sp2.IdPadre is null UNION ALL select sp.IdPadre, sp.IdHijo from PermisoPermiso sp inner join Recursivo r on r.IdHijo = sp.IdPadre ) select r.IdPadre, r.IdHijo, p.Id, p.Descripcion, p.EsPermiso from recursivo r right join Permiso p on (r.IdHijo = p.Id) "; } var dtPermisos = _accesoBaseDeDatos.Seleccionar(query, pars); if (dtPermisos.Rows.Count == 0) { return(null); } foreach (DataRow row in dtPermisos.Rows) { int idPadre = 0; if (row["IdPadre"] != DBNull.Value) { idPadre = Convert.ToInt32(row["IdPadre"]); } var id = Convert.ToInt32(row["Id"]); var descripcion = row["Descripcion"].ToString().Trim(); var esPermiso = Convert.ToBoolean(row["EsPermiso"].ToString().Trim()); PermisoComponente componente; if (!esPermiso) { componente = new GrupoPermiso(); } else { componente = new BE.Composite.Permiso(); } componente.Id = id; componente.Descripcion = descripcion; var padre = ObtenerComponente(idPadre, lstPermisos); if (padre == null) { lstPermisos.Add(componente); } else { padre.Agregar(componente); } } return(lstPermisos[0]); } catch (Exception e) { Console.WriteLine(e); throw; } }