private void SetMenuVisibilityByCurrentRole() { var administracion = false; var publicaciones = false; var estadistico = false; //Obtengo todas las funcionalidades asignadas al rol del usuario logueado foreach (var functionality in SessionManager.CurrentRol.Funcionalidades) { //Obtengo un objeto 'Funcionalidad' a partir de la descripción del rol (como aparece en la base) switch (Funcionalidad.GetByName(functionality.Descripcion)) { case Funcionalidades.ABM_Rol: administracionDeRolesToolStripMenuItem.Visible = true; administracion = true; break; case Funcionalidades.ABM_Cliente: administracionDeClientesToolStripMenuItem.Visible = true; administracion = true; break; case Funcionalidades.ABM_Empresa: administracionDeEmpresasToolStripMenuItem.Visible = true; administracion = true; break; case Funcionalidades.ABM_Usuario: administracionDeUsuariosToolStripMenuItem.Visible = true; administracion = true; break; case Funcionalidades.ABM_Visibilidad: administracionDeVisibilidadesToolStripMenuItem.Visible = true; administracion = true; break; case Funcionalidades.Generar_Publicacion: generarPublicacionesToolStripMenuItem.Visible = true; publicaciones = true; break; case Funcionalidades.Editar_Publicacion: editarMisPublicacionesToolStripMenuItem.Visible = true; publicaciones = true; break; case Funcionalidades.Gestion_Preguntas: responderPreguntasToolStripMenuItem.Visible = true; publicaciones = true; break; case Funcionalidades.Comprar_Ofertar: comprarOfertarToolStripMenuItem.Visible = true; publicaciones = true; break; case Funcionalidades.Historial_Cliente: historialClienteToolStripMenuItem.Visible = true; estadistico = true; break; case Funcionalidades.Calificar_Vendedor: calificarVendedorToolStripMenuItem.Visible = true; publicaciones = true; break; case Funcionalidades.Facturar_Publicaciones: facturarPublicacionesToolStripMenuItem.Visible = true; publicaciones = true; break; case Funcionalidades.Listado_Estadistico: listadoEstadisticoToolStripMenuItem.Visible = true; estadistico = true; break; } } //Si no posee ninguna funcionalidad de administración borro el menu item if (!administracion) { MsHome.Items.Remove(administracionToolStripMenuItem); } //Si no posee ninguna funcionalidad relacionadas con publicaciones borro el menu item if (!publicaciones) { MsHome.Items.Remove(publicacionesToolStripMenuItem); } //Si no posee ninguna funcionalidad de estadistica borro el menu item if (!estadistico) { MsHome.Items.Remove(estadisticasToolStripMenuItem); } }