コード例 #1
0
ファイル: LoginController.cs プロジェクト: raulp07/SICARO
        public static List <OpcionXPerfil_EL> SetearMenu(PerfilEL Rol, bool padre)
        {
            OpcionXPerfil_EL opcionesXPerfil = new OpcionXPerfil_EL()
            {
                Rol = Rol
            };
            string postdata = JsonConvert.SerializeObject(opcionesXPerfil);
            var    lista    = JsonConvert.DeserializeObject <List <OpcionXPerfil_EL> >(Utilitario.Accion.Conect_WEBAPI("OpcionXPerfil", "GET", "", opcionesXPerfil.Rol.Id.ToString())); //menuBL.ListMenu(opcionesXPerfil);

            List <OpcionXPerfil_EL> menuArbol = new List <OpcionXPerfil_EL>();

            //primero seteamos los padres
            foreach (OpcionXPerfil_EL m in lista.Where(x => x.Opcion.PadreId == 0))
            {
                AsignarMenu(menuArbol, m);
            }
            //seteamos los hijos
            if (!padre)
            {
                foreach (OpcionXPerfil_EL m in lista.Where(x => x.Opcion.PadreId != 0))
                {
                    AsignarMenu(menuArbol, m);
                }
            }

            return(menuArbol);
        }
コード例 #2
0
ファイル: LoginController.cs プロジェクト: raulp07/SICARO
        // Arma el arbol de menus del usuario.
        private static bool AsignarMenu(List <OpcionXPerfil_EL> menuLista, OpcionXPerfil_EL opcionXPerfil)
        {
            if (menuLista == null)
            {
                return(false);
            }

            if (opcionXPerfil.Opcion.PadreId == 0)
            {
                menuLista.Add(opcionXPerfil);
                return(true);
            }

            bool agregado = false;

            foreach (var m in menuLista)
            {
                if (m.Opcion.Id == opcionXPerfil.Opcion.PadreId)
                {
                    if (m.Hijos == null)
                    {
                        m.Hijos = new List <OpcionXPerfil_EL>();
                    }
                    m.Hijos.Add(opcionXPerfil);
                    agregado = true;
                    break;
                }
            }

            if (!agregado)
            {
                foreach (var m in menuLista)
                {
                    //agregado = AsignarMenu(m.Hijos, opcion);
                    if (agregado)
                    {
                        break;
                    }
                }
            }

            return(agregado);
        }
コード例 #3
0
        public List <OpcionXPerfil_EL> ListMenu(OpcionXPerfil_EL opcionPerfil)
        {
            using (SqlConnection con = new SqlConnection(ConexionUtil.Cadena))
            {
                con.Open();
                using (SqlCommand com = new SqlCommand("spOpcionXPerfil", con))
                {
                    com.CommandType = CommandType.StoredProcedure;
                    com.Parameters.Add("@IdRol", SqlDbType.Int).Value = opcionPerfil.Rol.Id;

                    List <OpcionXPerfil_EL> lstMenu = new List <OpcionXPerfil_EL>();
                    using (IDataReader dataReader = com.ExecuteReader())
                    {
                        while (dataReader.Read())
                        {
                            OpcionXPerfil_EL item   = new OpcionXPerfil_EL();
                            Opcion_EL        opcion = OPCION_DA.Opcion.GetOpcionByID((int)dataReader["OpcionId"]);
                            item.Opcion = opcion;

                            Rol_EL rol = new Rol_EL()
                            {
                                Id     = dataReader["IdRol"] != DBNull.Value ? (int)dataReader["IdRol"] : 0,
                                Nombre = dataReader["Perfil"] != DBNull.Value ? (string)dataReader["Perfil"] : ""
                            };
                            item.Rol = rol;
                            if (dataReader["Escritura"] != DBNull.Value)
                            {
                                item.Escritura = (bool)dataReader["Escritura"];
                            }

                            lstMenu.Add(item);
                        }
                    }

                    return(lstMenu);
                }
            }
        }
コード例 #4
0
ファイル: WCFICARO.svc.cs プロジェクト: raulp07/SICARO
        //================================================================


        // CONTROL PRODUCCION  =========================================
        public List <OpcionXPerfil_EL> ListMenu(OpcionXPerfil_EL opcionPerfil)
        {
            return(OpcionXPerfil_DA.OpcionXPerfil.ListMenu(opcionPerfil));
        }