public List <MenuDTO> ListarMenuPrincipalAccesos(string idTipoUsuario) { List <MenuDTO> menuReturn = new List <MenuDTO>(); List <MenuPrincipal> menu = this.ObtenerMenuPrincipal(); TipoUsuario tipoUsuario = this.TipoUsuarioObtener(idTipoUsuario.ConvertirInt()); TipoUsuarioAcceso tipoUsuarioAcceso = null; NivelAcceso permiso = null; menu.ForEach(delegate(MenuPrincipal menuPrincipal) { List <MenuSecundario> items = menuPrincipal.Items.ToList <MenuSecundario>() .OrderBy(item => item.Orden) .ToList <MenuSecundario>(); if (items == null || items.Count == 0) { tipoUsuarioAcceso = tipoUsuario.Permisos.ToList <TipoUsuarioAcceso>().Find(delegate(TipoUsuarioAcceso acceso) { return(acceso.IdMenuPrincipal == menuPrincipal.Id); }); if (tipoUsuarioAcceso != null) { permiso = tipoUsuarioAcceso.NivelAcceso; } else { permiso = new NivelAcceso((int)NIVEL_ACCESO.SIN_ACCESO, "SIN ACCESO"); } } else { permiso = new NivelAcceso(0, string.Empty); } menuReturn.Add(new MenuDTO(menuPrincipal.Id, menuPrincipal.Descripcion, -1, string.Empty, permiso.Id, permiso.Descripcion)); items.ForEach(delegate(MenuSecundario menuSecundario) { tipoUsuarioAcceso = tipoUsuario.Permisos.ToList <TipoUsuarioAcceso>().Find(delegate(TipoUsuarioAcceso acceso) { return(acceso.IdMenuSecundario == menuSecundario.Id); }); if (tipoUsuarioAcceso != null) { permiso = tipoUsuarioAcceso.NivelAcceso; } else { permiso = new NivelAcceso((int)NIVEL_ACCESO.SIN_ACCESO, "SIN ACCESO"); } menuReturn.Add(new MenuDTO(menuPrincipal.Id, string.Empty, menuSecundario.Id, menuSecundario.Descripcion, permiso.Id, permiso.Descripcion)); }); }); return(menuReturn); }
public void TipoUsuarioGrabar(string id, string descripcion, string permisos) { ServicioParametricas servParametricas = new ServicioParametricas(); TipoUsuario tipoUSR = null; int _id = -1; if (!int.TryParse(id, out _id)) { _id = -1; } if (_id == -1) { tipoUSR = new TipoUsuario(); } else { tipoUSR = this.TipoUsuarioObtener(_id); } tipoUSR.Descripcion = descripcion == null ? string.Empty : descripcion; tipoUSR.Vigente = true; if (permisos.Trim().Length > 0) { TipoUsuarioAcceso tipoUsuarioAcceso = null; string[] permisosSeleccionados = permisos.Substring(1).Split(';'); foreach (string permiso in permisosSeleccionados) { tipoUsuarioAcceso = new TipoUsuarioAcceso(); string[] menuAccesos = permiso.Split(','); tipoUsuarioAcceso.IdMenuPrincipal = menuAccesos[0].ConvertirInt(); tipoUsuarioAcceso.IdMenuSecundario = menuAccesos[1].ConvertirInt(); tipoUsuarioAcceso.NivelAcceso = servParametricas.ObtenerObjeto <NivelAcceso>(menuAccesos[2].ConvertirInt()); tipoUSR.AsignarPermiso(tipoUsuarioAcceso); } } RepositoryGenerico <TipoUsuario> repository = new RepositoryGenerico <TipoUsuario>(); repository.Actualizar(tipoUSR); }