예제 #1
0
        public List <BE_Permiso> ListarPatentes()
        {
            DAL               dal           = new DAL();
            DataTable         dt            = new DataTable();
            DataSet           ds            = new DataSet();
            List <BE_Permiso> list_patentes = new List <BE_Permiso>();
            BE_Patente        patentes      = default(BE_Patente);

            ds = dal.Leer("S_ListarPatente", null);
            if (ds.Tables[0].Rows.Count > 0)
            {
                foreach (DataRow item in ds.Tables[0].Rows)
                {
                    patentes        = new BE_Patente();
                    patentes.ID     = Convert.ToInt32(item["ID"]);
                    patentes.Nombre = item["Nombre"].ToString();
                    list_patentes.Add(patentes);
                }
                return(list_patentes);
            }
            else
            {
                return(null);
            }
        }
예제 #2
0
        public void ListUserByPermisos(EE_Usuario user)
        {
            DataSet ds  = new DataSet();
            var     sql = $@"select p.* from UsuarioPermiso up inner join permiso p on up.id_permiso=p.id where id_usuario='" + user.ID + "';";

            ds = Dal_.Leer2(sql);

            user.Permisos.Clear();
            if (ds.Tables[0].Rows.Count > 0)
            {
                foreach (DataRow item in ds.Tables[0].Rows)
                {
                    var id_permiso = Convert.ToInt32(item["ID"]);
                    var nombrep    = item["Nombre"].ToString();

                    var es_patente = String.Empty;
                    if (Convert.ToInt32(item["es_patente"]) != 0)
                    {
                        es_patente = item["Nombre"].ToString();
                    }


                    BE_Permiso c1;
                    if (!String.IsNullOrEmpty(es_patente))
                    {
                        c1        = new BE_Patente();
                        c1.ID     = id_permiso;
                        c1.Nombre = nombrep;
                        user.Permisos.Add(c1);
                    }
                    else
                    {
                        c1        = new BE_Familia();
                        c1.ID     = id_permiso;
                        c1.Nombre = nombrep;

                        var f = GetAll("=" + id_permiso);

                        foreach (var familia in f)
                        {
                            c1.agregarHijo(familia);
                        }
                        user.Permisos.Add(c1);
                    }
                }
            }
        }
예제 #3
0
        public IList <BE_Permiso> GetAll(string familia)
        {
            var where = "is NULL";

            if (!String.IsNullOrEmpty(familia))
            {
                where = familia;
            }

            DataSet ds = new DataSet();


            var sql = $@"with recursivo as (
                        select sp2.id_permiso_padre, sp2.id_permiso_hijo  from Permisos_Permisos SP2
                        where sp2.id_permiso_padre {where}
                        UNION ALL 
                        select sp.id_permiso_padre, sp.id_permiso_hijo from Permisos_Permisos sp 
                        inner join recursivo r on r.id_permiso_hijo= sp.id_permiso_padre
                        )
                        select r.id_permiso_padre,r.id_permiso_hijo,p.id,p.nombre, p.es_patente
                        from recursivo r 
                        inner join permiso p on r.id_permiso_hijo = p.id 
						
                        ";

            ds = Dal_.Leer2(sql);

            var lista = new List <BE_Permiso>();

            if (ds.Tables[0].Rows.Count > 0)
            {
                foreach (DataRow item in ds.Tables[0].Rows)
                {
                    int id_padre = 0;
                    if (item["id_permiso_padre"] != DBNull.Value)
                    {
                        id_padre = Convert.ToInt32(item["id_permiso_padre"]);
                    }

                    var id      = Convert.ToInt32(item["id"]);
                    var nombre  = item["nombre"].ToString();
                    var patente = Convert.ToBoolean(item["es_patente"]);


                    BE_Permiso c;

                    if (!patente)
                    {
                        c = new BE_Familia();
                    }
                    else
                    {
                        c = new BE_Patente();
                    }

                    c.ID     = id;
                    c.Nombre = nombre;

                    var padre = GetComponent(id_padre, lista);

                    if (padre == null)
                    {
                        lista.Add(c);
                    }
                    else
                    {
                        padre.agregarHijo(c);
                    }
                }
            }
            return(lista);
        }