Пример #1
0
        /// <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);
        }
Пример #2
0
        /// <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();
                }
            }
        }