コード例 #1
0
        //Acao disparada pelo botao de login
        //Totalmente assicrono
        private async Task <AdminDTO> doWorkAsync(string logon, string senha)
        {
            AdminDTO admin  = new AdminDTO(logon, senha);
            bool     result = await WaitEntityFramework.StartTask <Package>(TaskEF());

            //aqui tenho um contexto rodando assincrono
            if (result)
            {
                //ja iniciou nao precisa roda a barra denovo
                //isso impede que outro contexto seja iniciado
                this._isInit = true;

                if (admin.IsAdmin == false)
                {
                    //recria
                    this._xFrmLogin = new XFrmLogin(this);
                    //nao feche essa janela ate logar corretamente
                    this._xFrmLogin.DisposeOnLogin = false;

                    //marque false
                    //mesmo que o form marque true
                    //no banco de dados foi negado o acesso
                    this._xFrmLogin.IsLogin = false;

                    //agora nem esconde esse form mais
                    //fica amarrado ate logar corretamente
                    this._xFrmLogin.IsHideOnLogin = false;

                    MessageBoxBlack.Show("Usuário \"" + logon + "\" ou senha inválido(s).", "Atenção");
                }
                else
                {
                    this._xFrmLogin.IsLogin = true;
                    //agora sim feche essa janela
                    this._xFrmLogin.DisposeOnLogin = true;
                }
            }


            return(admin);
        }
コード例 #2
0
        /// <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 ao realizar login.";
                LoggerUtilIts.GenerateLogs(ex, msg);
                Environment.Exit(0);
                Application.Exit();
                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");

            AdminDTO admin = _taskLogin.Result;

            //se algum deles existe
            if (admin != null)
            {
                //garante o fim da Task
                _taskLogin.Dispose();

                //invoka a thread que amarra o menu principal
                Application.Run(new XFrmAdminMenu(_application));
            }
        }
コード例 #3
0
        //Acao disparada pelo botao de login
        //Sequencialmente
        private AdminDTO doWork(string logon, string senha)
        {
            Console.WriteLine("Wait Entityframework initializate ...");

            //aqui eu ja tenho contexto iniciado

            //traz um usuario indexado do banco + login no servidor
            AdminDTO admin = new AdminDTO(logon, senha, _application.ITSTools.Login(logon, senha));



            if (admin.IsAdmin == false)
            {
                MessageBoxBlack.Show("Usuário \"" + logon + "\" não encontrado.", "Atenção");
                this._xFrmLogin.BringToFront();
            }
            else
            {
                //agora sim feche essa janela
                this._xFrmLogin.DisposeOnLogin = true;
                this._xFrmLogin.Dispose();
            }
            return(admin);
        }