private object RealizaLogin(LoginForm form)
        {
            try
            {
                var  escopo = new LoginEscopo();
                bool result;

                if (!form.TipoAcesso)//GSI
                {
                    result = this.LoginGSI(form);
                }
                else//Professor
                {
                    result = this.LoginDocente(form, ref escopo);
                }

                return(new
                {
                    result = result,
                    mensagens = !escopo.ExistemErros ? escopo.MensagensSucesso : escopo.MensagensErro
                });
            }
            catch (Exception ex)
            {
                return(new
                {
                    result = false,
                    mensagens = new Mensagem(ETipoMensagem.FalhaSistema, ex.Message)
                });
            }
        }
        private bool LoginDocente(LoginForm form, ref LoginEscopo escopo)
        {
            try
            {
                var Pessoa = escopo.VerificaLoginDocente(form);

                UsuarioAutenticacao usuario = new UsuarioAutenticacao
                {
                    UnidadeEscolar = "escola",
                    Municipio      = "Municipio",
                    NomeCompleto   = Pessoa.NomeCompleto,
                    Perfil         = "Docente",
                    UsuarioId      = Pessoa.PessoaId,
                    MostrarTrocaPerfilUnidadeEscolar = true,
                    PessoaId = Pessoa.PessoaId,
                    AreaId   = (int)EPortalSistemasArea.Professor
                };

                GerenciadorSessao.UsuarioLogado = usuario;

                return(true);
            }
            catch (Exception)
            {
                throw;
            }
        }
        private StringBuilder MontarMenuHtml(string menuString)
        {
            // Montagem do menu de forma recursiva
            try
            {
                XDocument MenusSistema   = new XDocument();
                string    EstruturaMenus = menuString;
                MenusSistema = XDocument.Parse(EstruturaMenus);

                List <XElement> ListaMenus = (from ms in
                                              MenusSistema.Descendants("Menu")
                                              select ms).ToList();

                List <XElement> ListaMenusPai = ListaMenus.Where(m => m.Attribute("MenuPai").Value.Equals("6698")).ToList();

                StringBuilder menuPrincipal = new StringBuilder();

                var escopo    = new LoginEscopo();
                var menuIcone = escopo.ObterListaIconePorSistemaId(sistemaId);

                //Monta os Menus Accordion
                foreach (XElement menu in ListaMenusPai)
                {
                    //Monta os menus recursivamente
                    string MenuID = menu.Attribute("MenuID").Value;

                    menuPrincipal.Append("<li>");
                    string UrlNavegacao = menu.Attribute("NavigateURL").Value;

                    menuPrincipal.Append(string.Format("<a href=\"{0}\" class=\"dropdown-toggle\">", UrlNavegacao));

                    //Icone Menu
                    if (menuIcone.Any())
                    {
                        int menuId    = Convert.ToInt32(MenuID);
                        var iconeMenu = menuIcone.Where(x => x.MenuId == menuId).FirstOrDefault();
                        if (iconeMenu != null)
                        {
                            menuPrincipal.Append("<i class=\"" + iconeMenu.ClasseCss + "\"></i>");
                        }
                    }

                    menuPrincipal.Append(string.Format("<span class=\"menu-text\">{0}</span>", menu.Attribute("NomeMenu").Value));

                    if (ListaMenus.Any(m => m.Attribute("MenuPai").Value.Equals(MenuID)))
                    {
                        menuPrincipal.Append("<b class=\"arrow fa fa-angle-down\"></b>");
                        menuPrincipal.Append("</a>");
                        menuPrincipal.Append("<ul class=\"submenu\">");
                        this.CarregaMenusFilhosHtml(menuPrincipal, MenuID, ListaMenus);
                        menuPrincipal.Append("</ul>");
                    }
                    else
                    {
                        menuPrincipal.Append("</a>");
                    }

                    menuPrincipal.Append("</li>");
                }

                return(menuPrincipal);
            }
            catch (Exception ex)
            {
                return(null);
            }
        }