コード例 #1
0
        /// <summary>
        /// Executa uma aplicação.
        /// </summary>
        /// <param name="tipoFormulário">Formulário principal que herda de Apresentação.Formulários.BaseFormulário</param>
        /// <param name="fachada">Nome da faixada</param>
        /// <param name="efetuarLogin">Pedir que usuário efetua login no banco de dados</param>
        public static void Executar(Type tipoFormulário, Usuários usuários, bool efetuarLogin, bool mostrarSplash)
        {
#if DEBUG
            Console.WriteLine("========================================================");
            Console.WriteLine("Executando aplicação...");
#endif

            try
            {
                Application.SetCompatibleTextRenderingDefault(false);
                Application.EnableVisualStyles();
                Application.SetUnhandledExceptionMode(UnhandledExceptionMode.CatchException, true);
                Application.ThreadException += new System.Threading.ThreadExceptionEventHandler(ThreadException);
            }
            catch { }


#if !DEBUG
			try
#endif
            {
                Splash splash;

                // Mostra splash screen
                if (mostrarSplash)
                {
                    splash = new Splash();
                    splash.Show();
                    splash.Update();

#if DEBUG
                    Console.WriteLine("Splash exibido!");
#endif
                }
                else
                    splash = null;

                try
                {
                    aplicação = new Aplicação(tipoFormulário, usuários, efetuarLogin, splash);
                }
                catch (LoginNãoAssociadoAFuncionário)
                {
                    MessageBox.Show("O login não está associado a um funcionário", "Login não pode ser feito", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    Application.Exit();
                    return;
                }
                catch (LoginOuSenhaIncorretos)
                {
                    MessageBox.Show("Login e/ou senha incorretos. ", "Login não pode ser feito", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    Application.Exit();
                    return;
                }

#if DEBUG
                Console.WriteLine("Disparando ao carregar!");
#endif
                aplicação.DispararAoCarregar();

                splash = null;


#if DEBUG
                Console.WriteLine("Aplicação pronta!");
                Console.WriteLine("========================================================");
#endif




                Application.Run(aplicação);

                GC.Collect();
            }
#if !DEBUG
			catch (LoginNãoEfetuado)
			{
				// Nada aqui
			}
			catch (Exception e)
			{
				try
				{
					Acesso.Comum.Usuários.UsuárioAtual.RegistrarErro(e);

					MessageBox.Show("Ocorreu um erro e o programa será finalizado. Um relatório de erros foi gerado e enviado ao servidor.\n\nMensagem de erro: " + e.Message, "Falha no sistema", MessageBoxButtons.OK, MessageBoxIcon.Error);
				}
				catch (Exception e2)
				{
					MessageBox.Show("Ocorreu o seguinte erro no sistema e o programa será finalizado: " + e.ToString(), "Falha no sistema", MessageBoxButtons.OK, MessageBoxIcon.Error);
					MessageBox.Show("Não foi possível enviar relatório para os programadores devido ao seguinte problema: " + e2.ToString(), "Falha no sistema", MessageBoxButtons.OK, MessageBoxIcon.Error);
				}
			}
#endif
        }
コード例 #2
0
ファイル: Login.cs プロジェクト: andrepontesmelo/imjoias
        /// <summary>
        /// </summary>
        /// <returns>Falso se usuário cancelou</returns>
        public static bool EfetuarLogin(Usuários usuários, Splash splash)
        {
#pragma warning disable 0162            
#if DEBUG

            Usuários.UsuárioAtual = usuários.EfetuarLogin("andrep", "andrep");
            return true;
#endif


            bool conectado = false;
            // Constrói janela de login
            using (Login loginDlg = new Login())
            {
                do
                {
                    DialogResult resultado;

                    if (splash != null)
                        splash.Hide();

                    resultado = loginDlg.ShowDialog();

                    if (splash != null)
                        splash.Show();

                    switch (resultado)
                    {
                        case DialogResult.OK:
                            if (splash != null)
                                splash.Mensagem = "Autenticando usuário";

                            try
                            {
                                Usuários.UsuárioAtual = usuários.EfetuarLogin(loginDlg.txtUsuário.Text, loginDlg.txtSenha.Text);

                                if (Usuários.UsuárioAtual == null)
                                    MessageBox.Show("Senha ou usuário incorreto!",
                                        "Indústria Mineira de Joias",
                                        MessageBoxButtons.OK,
                                        MessageBoxIcon.Stop);
                                else
                                {
                                    conectado = true;
                                }
                            }
                            catch (Exception e)
                            {
                                if (splash != null)
                                    splash.Mensagem = "Não foi possível autenticar usuário";

                                MessageBox.Show("Não foi possível autenticar usuário.\r\n\r\nOcorreu o seguinte erro: " + e.Message,
                                    "Indústria Mineira de Joias",
                                    MessageBoxButtons.OK,
                                    MessageBoxIcon.Error);
                            }
                            // Conectado!
                            break;

                        case DialogResult.Cancel:
                            return false;

                        default:
                            break;
                    }

                } while (!conectado);

#if DEBUG
                Usuários.UsuárioAtual.GerenciadorConexões.ConexãoPresa += new GerenciadorConexões.ConexãoPresaCallback(GerenciadorConexões_ConexãoPresa);
#endif
                return true;
            }

#pragma warning restore 0162
        }