Example #1
0
        public List<GrupoPermiso> TraerGruposPermiso()
        {
            try
            {
                List<GrupoPermiso> permisos = new List<GrupoPermiso>();
                GrupoPermiso permiso = null;

                using (SqlConnection conexion = Conexion.ObtenerInstancia().CrearConexionSQL())
                {

                    using (SqlCommand comando = conexion.CreateCommand())
                    {
                        comando.CommandType = CommandType.StoredProcedure;
                        comando.CommandText = "SPS_Grupos_Permiso";

                        comando.Connection.Open();

                        SqlDataReader dataReader = comando.ExecuteReader(CommandBehavior.CloseConnection);

                        while (dataReader.Read())
                        {
                            permiso = new GrupoPermiso();

                            permiso.ID = Convert.ToInt16(dataReader["ID"]);
                            permiso.Descripcion = dataReader["DESCRIPCION"].ToString();
                            permiso.Accion = Convert.ToInt16(dataReader["ACCION"]);

                            if (permiso.TieneHijos())
                            {
                                List<PermisoBase> permisosHijos = TraerPermisosHijos(permiso.ID);

                                if (permisosHijos != null)
                                {
                                    foreach (PermisoBase per in permisosHijos)
                                    {
                                        permiso.AgregarHijo(per);
                                    }
                                }
                            }

                            permisos.Add(permiso);
                        }
                    }

                }

                return permisos;
            }
            catch (AccesoBDException ex)
            {
                throw new SecurityDAOException("TraerGruposPermiso", "AccesoBD", ex.Message, ex);
            }
            catch (SqlException ex)
            {
                throw new SecurityDAOException("TraerGruposPermiso", "SQL", ex.Message, ex);
            }
            catch (Exception ex)
            {
                throw new SecurityDAOException("TraerGruposPermiso", "General: " + ex.GetType().ToString(), ex.Message, ex);
            }
        }