Exemple #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);
        }
Exemple #2
0
        //Acao disparada pelo botao de login
        //Totalmente assicrono
        private async Task <Usuario> doWorkAsync(string logon, string senha)
        {
            Usuario user = new Usuario();

            bool result = await WaitEntityFramework.StartTask <Usuario>(taskInitEF());

            //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;

                //traz um usuario indexado do banco
                if (senha == null)
                {
                    //a senha nunca chega nula a nao ser q eu aponte intencionalmente
                    user = new UsuarioDaoManager().FindUserByNameOrId(logon);
                }
                else
                {
                    user = new UsuarioDaoManager().IsLogin(logon, senha);
                }

                //seta o usuario
                UnitWork.Usuario = user;

                if (user == null)
                {
                    //recria
                    this._xFrmLogin = new ITSolution.Framework.Forms.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;

                    //mostre o botao de cadastro na tela
                    //so deixe cadastrar no inicio se nao tiver usuarios
                    if (_ctx.UsuarioDao.FindAll().Count == 0)
                    {
                        //se nao coloquei o botao na tela
                        if (this._xFrmLogin.ActionBtn == null)
                        {
                            this._xFrmLogin.ActionBtn         = addUsuario();
                            this._xFrmLogin.BtnAction.Visible = true;
                        }
                    }

                    //se o login automatico falhou
                    if (this._isLoginAutoFailed)
                    {
                        //apaguei as preferencias
                        //implica e fazer todo o processo novamente
                        File.Delete(UnitWork.PREFERENCIAS);
                    }

                    MessageBoxBlack.Show("Usuário \"" + logon + "\" ou senha inválido(s).", "Atenção");
                }
                else
                {
                    //use o tema do user
                    DevExpress.LookAndFeel.UserLookAndFeel.Default.SkinName = user.Skin;
                    this._xFrmLogin.IsLogin = true;
                    //login no servidor
                    //_application.ITSTools.Login(logon, senha);
                    //agora sim feche essa janela
                    this._xFrmLogin.DisposeOnLogin = true;

                    //seta a matriz e filial
                    setMatrizFilial(_ctx);
                }
            }


            return(user);
        }