示例#1
0
        public List <menu> MenusPorUsuario(usuario unUsuario)
        {
            Alineaciones();
            TiposColumnas();
            menu        objeto    = new menu();
            List <menu> registros = new List <menu>();

            using (ispDB db = new ispDB())
            {
                if (unUsuario.administrador == true)
                {
                    registros =
                        db.menus.GroupJoin(
                            db.menus, x => x.id, y => y.idpadre, (x, y) => new menu()
                    {
                        id         = x.id,
                        idpadre    = x.idpadre,
                        nombre     = x.nombre,
                        titulo     = x.titulo,
                        visible    = x.visible,
                        busqueda   = x.busqueda,
                        contenedor = x.contenedor,
                        editable   = true,
                        formulario = x.formulario,
                        icono      = x.icono,
                        modulo     = x.modulo,
                        piedetalle = x.piedetalle,
                        tabla      = x.tabla,
                        Vinculado  = (y.Count() == 0 ? false : true)
                    }).GroupJoin(db.columnasgrids.OrderBy(x => x.identificador).ThenBy(x => x.orden), x => x.id, y => y.idmenu, (x, y) => new menu()
                    {
                        id             = x.id,
                        idpadre        = x.idpadre,
                        nombre         = x.nombre,
                        titulo         = x.titulo,
                        visible        = x.visible,
                        busqueda       = x.busqueda,
                        contenedor     = x.contenedor,
                        editable       = x.editable,
                        formulario     = x.formulario,
                        icono          = x.icono,
                        modulo         = x.modulo,
                        piedetalle     = x.piedetalle,
                        tabla          = x.tabla,
                        Vinculado      = x.Vinculado,
                        fkcolumnasgrid = y.ToList()
                    }).ToList();
                }
                else
                {
                    registros = db.Query(new menu(),
                                         objeto.CadenaSelectAsignados(),
                                         new[] { new DataParameter("codigo", unUsuario.id) }
                                         ).Select(x => new menu()
                    {
                        id         = x.id,
                        idpadre    = x.idpadre,
                        nombre     = x.nombre,
                        titulo     = x.titulo,
                        visible    = x.visible,
                        busqueda   = x.busqueda,
                        contenedor = x.contenedor,
                        editable   = x.editable,
                        formulario = x.formulario,
                        icono      = x.icono,
                        modulo     = x.modulo,
                        piedetalle = x.piedetalle,
                        tabla      = x.tabla
                    }).GroupJoin(db.columnasgrids.OrderBy(x => x.identificador).ThenBy(x => x.orden), x => x.id, y => y.idmenu, (x, y) => new menu()
                    {
                        id             = x.id,
                        idpadre        = x.idpadre,
                        nombre         = x.nombre,
                        titulo         = x.titulo,
                        visible        = x.visible,
                        busqueda       = x.busqueda,
                        contenedor     = x.contenedor,
                        editable       = x.editable,
                        formulario     = x.formulario,
                        icono          = x.icono,
                        modulo         = x.modulo,
                        piedetalle     = x.piedetalle,
                        tabla          = x.tabla,
                        Vinculado      = x.Vinculado,
                        fkcolumnasgrid = y.ToList()
                    }).ToList();
                }
            }

            this.ListaPadres = registros.OrderBy(x => x.nombre).Where(x => x.contenedor == true).ToList();

            for (int i = 0; i < registros.Count; i++)
            {
                registros[i] = CargarRelaciones(registros[i]);
            }
            objeto = null;
            return(registros.OrderBy(x => x.nombre).ToList());
        }