/// <summary> /// Carregar o menu de acordo com o perfil. /// </summary> /// <param name="codigoModulo">O código do modulo.</param> /// <returns>Configuração do menu.</returns> protected override Tykon.Web.Models.ConfiguracaoMenu CarregarMenu(int?codigoModulo) { var configuracaoMenu = new ConfiguracaoMenu(); List <Modulo> modulosUsuario; Modulo modulo; UsuarioSistema usuarioLogado = this.RecuperaUsuarioLogado(); modulosUsuario = this.RetornaModulosAssociadosAoUsuario(usuarioLogado); var itensAutorizadosUsuario = this.RetornaTodosItensDoUsuario(usuarioLogado); if (codigoModulo.HasValue) { using (var svc = MvcApplication.Fabrica.Resolva <IServicoModulo>()) { modulo = svc.ConsultaPorId(codigoModulo.Value); this.CarregaArvoreModulo(modulo, configuracaoMenu, itensAutorizadosUsuario); } } else { modulo = modulosUsuario.OrderBy(x => x.OrdemModulo).FirstOrDefault(); this.CarregaArvoreModulo(modulo, configuracaoMenu, itensAutorizadosUsuario); } configuracaoMenu.Modulos = this.PreparaListaDeModulosUsuario(modulosUsuario); this.Session["NomeUsuarioLogado"] = usuarioLogado.PessoaFisica.NomePessoa.ToUpper(); this.Session["LoginUsuario"] = usuarioLogado.Login; this.Session["CodigoModulo"] = configuracaoMenu.CodigoPerfil; return(configuracaoMenu); }
/// <summary> /// Carrega a arvore do modulo com menus e itens. /// </summary> /// <param name="modulo">O módulo a ser carregado.</param> /// <param name="configuracaoMenu">A configuração de menu a ser preenchida.</param> /// <param name="itensAutorizadosUsuario">A lista de itens autorizadas para o usuário.</param> private void CarregaArvoreModulo(Modulo modulo, ConfiguracaoMenu configuracaoMenu, List <Item> itensAutorizadosUsuario) { var configuracaoGrupoMenu = new ConfiguracaoGrupoMenu(); var configuracaoItemMenu = new ConfiguracaoItemMenu(); int contadorGrupoMenu = 0; if (modulo != null) { if (modulo.Menus.Any()) { foreach (var menu in modulo.Menus.OrderBy(x => x.OrdemMenu)) { contadorGrupoMenu++; configuracaoGrupoMenu = new ConfiguracaoGrupoMenu(); configuracaoGrupoMenu.NomeGrupo = menu.NomeMenu; configuracaoGrupoMenu.Icone = menu.LogoMenu; configuracaoGrupoMenu.CodigoGrupo = contadorGrupoMenu.ToString(); foreach (var item in menu.Itens) { if (itensAutorizadosUsuario.Where(x => x.Id == item.Id).OrderBy(x => x.OrdemItem).Count() > 0) { configuracaoItemMenu = new ConfiguracaoItemMenu(); configuracaoItemMenu.CodigoItem = item.Id.ToString(); configuracaoItemMenu.NomeItem = item.DescricaoItem; configuracaoItemMenu.DescricaoItem = item.DescricaoItem; configuracaoItemMenu.Controladora = item.Controladoritem; configuracaoItemMenu.LogoItem = item.LogoItem; configuracaoItemMenu.Acessos = "IACE"; configuracaoGrupoMenu.Items.Add(configuracaoItemMenu); } } configuracaoMenu.Grupos.Add(configuracaoGrupoMenu); } configuracaoMenu.CodigoPerfil = modulo.Id.ToString(); } } }