コード例 #1
0
ファイル: MenuUtil.cs プロジェクト: gercyc/ITE.ERP
        private void verifyMenu(XFrmMenu menu, List <ItsMenu> activeMenus)
        {
            foreach (var mnu_item in activeMenus)
            {
                foreach (RibbonPage page in menu.Ribbon.Pages)
                {
                    if (page.Name == mnu_item.NomeMenu)
                    {
                        page.Visible = mnu_item.Status;
                    }

                    foreach (RibbonPageGroup grp in page.Groups)
                    {
                        if (grp.Name == mnu_item.NomeMenu)
                        {
                            grp.Visible = mnu_item.Status;
                        }

                        foreach (BarItemLink btn in grp.ItemLinks)
                        {
                            if (btn.Item.Name == mnu_item.NomeMenu)
                            {
                                btn.Visible = mnu_item.Status;

                                if (btn.Item.Visibility == BarItemVisibility.Never && mnu_item.Status)
                                {
                                    btn.Item.Visibility = BarItemVisibility.Always;
                                }
                            }
                        }
                    }
                }
            }
        }
コード例 #2
0
ファイル: MenuUtil.cs プロジェクト: gercyc/ITE.ERP
        /// <summary>
        /// Aguarde o fim da tarefa e invoca o menu se o contexto foi iniciado e o usuário logado corretamente
        /// </summary>
        private void waitRun()
        {
            try
            {
                _taskLogin.Wait();
            }
            catch (Exception ex)
            {
                string msg = "Ocorreu um erro não identificado !";
                LoggerUtilIts.GenerateLogs(ex, msg);
                XMessageIts.ExceptionJustMessage(ex, msg, "Falha no sistema !");
                throw ex;
            }//se nao conseguiu logar deu ruim
            if (this._xFrmLogin.IsLogin == false)
            {
                //faz tudo denovo mas dessa vez fica amarrado
                //ou seja nao vai fechar o form ate logar corretamente
                this._xFrmLogin.ShowDialog();
            }

            Console.WriteLine("Task Done");

            if (this._xFrmMatrizFilial == null || this._xFrmMatrizFilial.IsFilial == false || this._xFrmMatrizFilial.IsCancel)
            {
                Application.Exit();
            }
            else
            {
                Usuario user = _taskLogin.Result;
                //se algum deles existe
                if (user != null || UnitWork.Usuario != null)
                {
                    //se o primeiro usuario falhou
                    if (user == null)
                    {
                        //entao esse aqui ta ok
                        user = UnitWork.Usuario;
                    }

                    //garante o fim da Task
                    _taskLogin.Dispose();

                    //invoka a thread que amarra o menu principal
                    var licManager = new LicenseDaoManager();
                    var lic        = licManager.GetValidLicense();

                    if (lic != null)
                    {
                        var menu = new XFrmMenu(user, _application);
                        verifyMenu(menu, lic.LicenseDataUnSerialized.ActiveMenus);
                        Application.Run(menu);
                    }
                    else
                    {
                        Application.Exit();
                    }
                }
            }
        }