public static List <OpcionXPerfilEL> SetearMenu(bool padre) { List <OpcionXPerfilEL> lista = null; OpcionXPerfilBL menuBL = new OpcionXPerfilBL(); OpcionXPerfilEL opcionesXPerfil = new OpcionXPerfilEL() { Aplicacion = SesionUsuario.Aplicacion, Perfil = SesionUsuario.Usuario.Perfil }; lista = menuBL.ListMenu(opcionesXPerfil); List <OpcionXPerfilEL> menuArbol = new List <OpcionXPerfilEL>(); //primero seteamos los padres foreach (OpcionXPerfilEL m in lista.Where(x => x.Opcion.PadreId == 0)) { AsignarMenu(menuArbol, m); } //seteamos los hijos if (!padre) { foreach (OpcionXPerfilEL m in lista.Where(x => x.Opcion.PadreId != 0)) { AsignarMenu(menuArbol, m); } } return(menuArbol); }
public List <OpcionXPerfilEL> ListMenu(OpcionXPerfilEL opcionPerfil) { string postdata = js.Serialize(opcionPerfil); return(js.Deserialize <List <OpcionXPerfilEL> >(conecRest.ConectREST("ListaMenu", "POST", postdata))); //return new OpcionXPerfilDA().ListMenu(opcionPerfil); }
public List <OpcionXPerfilEL> ListMenu(OpcionXPerfilEL opcionPerfil) { string request = ctx.IncomingRequest.Headers["token-client"]; if (!UDA.Validarusuario(request)) { return(null); } return(OpcionXPerfilDA.OpcionXPerfil.ListMenu(opcionPerfil)); }
public List <OpcionXPerfilEL> ListMenu(OpcionXPerfilEL opcionPerfil) { using (SqlConnection con = new SqlConnection(ConexionUtil.Cadena)) { con.Open(); using (SqlCommand com = new SqlCommand("USPS_OpcionXPerfil", con)) { com.CommandType = CommandType.StoredProcedure; com.Parameters.Add("@idapp", SqlDbType.Int).Value = opcionPerfil.Aplicacion.Id; com.Parameters.Add("@idperfil", SqlDbType.Int).Value = opcionPerfil.Perfil.Id; com.Parameters.Add("@coderr", SqlDbType.Int).Direction = ParameterDirection.Output; com.Parameters.Add("@msgerr", SqlDbType.VarChar, 100).Direction = ParameterDirection.Output; List <OpcionXPerfilEL> lstMenu = new List <OpcionXPerfilEL>(); using (IDataReader dataReader = com.ExecuteReader()) { while (dataReader.Read()) { OpcionXPerfilEL item = new OpcionXPerfilEL(); OpcionEL opcion = OpcionDA.Opcion.GetOpcionByID((int)dataReader["OpcionId"]); item.Opcion = opcion; AplicacionEL aplicacion = new AplicacionEL() { Id = dataReader["AplicacionId"] != DBNull.Value ? (int)dataReader["AplicacionId"] : 0, Descripcion = dataReader["Aplicacion"] != DBNull.Value ? (string)dataReader["Aplicacion"] : "" }; item.Aplicacion = aplicacion; PerfilEL perfil = new PerfilEL() { Id = dataReader["PerfilId"] != DBNull.Value ? (int)dataReader["PerfilId"] : 0, Nombre = dataReader["Perfil"] != DBNull.Value ? (string)dataReader["Perfil"] : "" }; item.Aplicacion = aplicacion; if (dataReader["Escritura"] != DBNull.Value) { item.Escritura = (bool)dataReader["Escritura"]; } lstMenu.Add(item); } } return(lstMenu); } } }
// Arma el arbol de menus del usuario. private static bool AsignarMenu(List <OpcionXPerfilEL> menuLista, OpcionXPerfilEL 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 <OpcionXPerfilEL>(); } m.Hijos.Add(opcionXPerfil); agregado = true; break; } } if (!agregado) { foreach (var m in menuLista) { //agregado = AsignarMenu(m.Hijos, opcion); if (agregado) { break; } } } return(agregado); }
public List <OpcionXPerfilEL> ListMenu(OpcionXPerfilEL opcionPerfil) { DAABRequest.Parameter[] arrParam = { new DAABRequest.Parameter("@idapp", DbType.Int32, ParameterDirection.Input), new DAABRequest.Parameter("@idperfil", DbType.Int32, ParameterDirection.Input), new DAABRequest.Parameter("@coderr", DbType.Int32, ParameterDirection.Output), new DAABRequest.Parameter("@msgerr", DbType.String, 1000, ParameterDirection.Output) }; arrParam[0].Value = opcionPerfil.Aplicacion.Id; arrParam[1].Value = opcionPerfil.Perfil.Id; configPARDOSDB objPardosDb = new configPARDOSDB(); DAABRequest objRequest = objPardosDb.CreaRequest(); objRequest.CommandType = CommandType.StoredProcedure; objRequest.Command = "USPS_OpcionXPerfil"; objRequest.Parameters.AddRange(arrParam); List <OpcionXPerfilEL> lstMenu = new List <OpcionXPerfilEL>(); IDataReader dr = null; try { dr = objRequest.Factory.ExecuteReader(ref objRequest).ReturnDataReader; while (dr.Read()) { OpcionXPerfilEL item = new OpcionXPerfilEL(); int? opcionId = Funciones.CheckInt(dr["OpcionId"]); OpcionEL opcion = new OpcionDA().GetOpcionByID(opcionId); item.Opcion = opcion; AplicacionEL aplicacion = new AplicacionEL() { Id = Funciones.CheckInt(dr["AplicacionId"]), Descripcion = Funciones.CheckStr(dr["Aplicacion"]) }; item.Aplicacion = aplicacion; PerfilEL perfil = new PerfilEL() { Id = Funciones.CheckInt(dr["PerfilId"]), Nombre = Funciones.CheckStr(dr["Perfil"]) }; item.Aplicacion = aplicacion; item.Escritura = Convert.ToBoolean(dr["Escritura"]); lstMenu.Add(item); } } catch (Exception e) { lstMenu = null; throw e; } finally { if (dr != null && dr.IsClosed == false) { dr.Close(); } objRequest.Parameters.Clear(); objRequest.Factory.Dispose(); } return(lstMenu); }
public List <OpcionXPerfilEL> ListMenu(OpcionXPerfilEL opcionPerfil) { return(new OpcionXPerfilDA().ListMenu(opcionPerfil)); }