Пример #1
0
        public static List <Rol> GetAll()
        {
            var            conn        = Repository.GetConnection();
            string         comando     = string.Format(@"SELECT * FROM TIRANDO_QUERIES.Rol");
            DataTable      dataTable   = new DataTable();
            SqlDataAdapter dataAdapter = new SqlDataAdapter(comando, conn);
            List <Rol>     roles       = new List <Rol>();

            try
            {
                dataAdapter.Fill(dataTable);

                foreach (DataRow fila in dataTable.Rows)
                {
                    int idRol = int.Parse(fila["rol_codigo"].ToString());

                    Rol rol = new Rol
                    {
                        Cod_rol  = idRol,
                        Activo   = bool.Parse(fila["rol_activo"].ToString()),
                        Nombre   = fila["rol_nombre"].ToString(),
                        Permisos = PermisoDAO.GetAllForIDRol(idRol)
                    };

                    roles.Add(rol);
                }

                conn.Close();
                conn.Dispose();
                return(roles);
            }
            catch (Exception ex)
            {
                throw new Exception("Ocurrió un error al listar los roles", ex);
            }
        }
Пример #2
0
        public static Rol GetByID(int id)
        {
            var            conn    = Repository.GetConnection();
            string         comando = string.Format(@"SELECT * FROM TIRANDO_QUERIES.Rol WHERE rol_codigo = {0}", id);
            DataTable      dataTable;
            SqlDataAdapter dataAdapter;

            try
            {
                dataAdapter = new SqlDataAdapter(comando, conn);
                dataTable   = new DataTable();

                dataAdapter.Fill(dataTable);

                DataRow registroRol = dataTable.Rows[0];

                var idRol = int.Parse(registroRol["rol_codigo"].ToString());

                var rol = new Rol
                {
                    Activo   = bool.Parse(registroRol["rol_activo"].ToString()),
                    Cod_rol  = idRol,
                    Nombre   = registroRol["rol_nombre"].ToString(),
                    Permisos = PermisoDAO.GetAllForIDRol(idRol)
                };

                conn.Close();
                conn.Dispose();

                return(rol);
            }
            catch (Exception ex)
            {
                throw new Exception("Ocurrió un error al intentar obtener el rol", ex);
            }
        }
Пример #3
0
        public static List <Permiso> GetAllForIDRol(int idRol)
        {
            DataTable      dataTable;
            SqlDataAdapter dataAdapter;
            var            conn = Repository.GetConnection();

            string comando = string.Format(@"SELECT * FROM TIRANDO_QUERIES.Permiso_Rol WHERE pr_rol_codigo = {0}", idRol);

            try
            {
                dataAdapter = new SqlDataAdapter(comando, conn);
                dataTable   = new DataTable();

                dataAdapter.Fill(dataTable);
                List <Permiso> permisos = new List <Permiso>();

                foreach (DataRow fila in dataTable.Rows)
                {
                    var codigoPermiso = int.Parse(fila["pr_perm_codigo"].ToString());

                    var permiso = PermisoDAO.GetByID(codigoPermiso);

                    permisos.Add(permiso);
                }

                dataAdapter.Dispose();
                conn.Dispose();
                conn.Close();

                return(permisos);
            }
            catch (Exception ex)
            {
                throw new Exception("Ocurrió un error al listar los permisos del rol", ex);
            }
        }
Пример #4
0
        public static List <Rol> GetAllWithFilters(string likeFilter, string exactFilter, int?idDropdown)
        {
            int codigoRol;

            if (!int.TryParse(exactFilter, out codigoRol) && !string.IsNullOrWhiteSpace(exactFilter))
            {
                throw new Exception("El código de rol solo puede contener numeros");
            }

            var        conn    = Repository.GetConnection();
            SqlCommand comando = new SqlCommand(@"SELECT r.* FROM TIRANDO_QUERIES.Rol r " +
                                                "join TIRANDO_QUERIES.Permiso_Rol on rol_codigo = pr_rol_codigo " +
                                                "join TIRANDO_QUERIES.Permiso on pr_perm_codigo = perm_codigo " +
                                                "where 1=1 ", conn);
            DataTable dataTable = new DataTable();

            if (!string.IsNullOrWhiteSpace(likeFilter))
            {
                comando.CommandText += "AND (rol_nombre like '%' + @likeParameter + '%' OR " +
                                       "perm_nombre like '%' + @likeParameter + '%') ";
                comando.Parameters.AddWithValue("@likeParameter", likeFilter.Trim());
            }

            if (!string.IsNullOrWhiteSpace(exactFilter))
            {
                comando.CommandText += "AND rol_codigo = @exactFilter ";
                comando.Parameters.AddWithValue("@exactFilter", exactFilter);
            }

            if (idDropdown != null && idDropdown != 0)
            {
                comando.CommandText += "AND perm_codigo = @codigoPermiso ";
                comando.Parameters.AddWithValue("@codigoPermiso", idDropdown.Value);
            }

            comando.CommandText += "group by r.rol_nombre, r.rol_codigo, r.rol_activo";

            SqlDataAdapter dataAdapter = new SqlDataAdapter()
            {
                SelectCommand = comando
            };

            try
            {
                dataAdapter.Fill(dataTable);
                List <Rol> roles = new List <Rol>();

                foreach (DataRow fila in dataTable.Rows)
                {
                    int idRol = int.Parse(fila["rol_codigo"].ToString());

                    Rol rol = new Rol
                    {
                        Cod_rol  = idRol,
                        Activo   = bool.Parse(fila["rol_activo"].ToString()),
                        Nombre   = fila["rol_nombre"].ToString(),
                        Permisos = PermisoDAO.GetAllForIDRol(idRol)
                    };

                    roles.Add(rol);
                }

                return(roles);
            }
            catch (Exception ex)
            {
                throw new Exception("Ocurrió un error al intentar listar los roles", ex);
            }
            finally
            {
                conn.Close();
                conn.Dispose();
            }
        }