static void Main(string[] args)
        {
            // From login
            Usuario usuarioLogin = new FormLogin().fazerLogin(14104);
            System.Console.WriteLine(usuarioLogin.nome);
            System.Console.ReadKey();

            // Form Usuario            
            var incluiUsuario = new Usuario
            {
                RA = 1410402,
                nome = "Teste",
                email = "*****@*****.**",
                senha = "123456",
                perfil = Usuario.Perfil.Usuario,
                ativo = true,
                visualizacao = true
            };
            new FormUsuario().incluirUsuario(incluiUsuario);

            var alteraUsuario = new Usuario
            {
                RA = 14104,
                nome = "Teste teste",
                email = "*****@*****.**",
                senha = "123456",
                perfil = Usuario.Perfil.Usuario,
                ativo = true,
                visualizacao = true
            };
            new FormUsuario().alterarUsuario(alteraUsuario);

            new FormUsuario().excluirUsuario(14104);

            ICollection<Usuario> usuarios = new FormUsuario().listarLogin();
            foreach (Usuario usuario in usuarios)
            {
                System.Console.WriteLine(usuario.nome +" - "+ usuario.RA);                
            }
            System.Console.ReadKey();

            var buscaUsuario = new FormUsuario().buscaUsuario(1410403);
            System.Console.WriteLine(buscaUsuario.RA + " - " + buscaUsuario.nome);

            // Form Turma
            var incluiTurma = new Turma
            {
                nome = "teste",
                ativo = true
            };
            new FormTurma().incluirTurma(incluiTurma);

            var alteraTurma = new Turma
            {
                turmaId = 4,
                nome = "teste teste",
                ativo = true
            };
            new FormTurma().alterarTurma(alteraTurma);

            new FormTurma().excluirTurma(2);

            ICollection<Turma> turmas = new FormTurma().listarTurmas();

            foreach (Turma turma in turmas)
            {
                System.Console.WriteLine(turma.turmaId + " - " + turma.nome);
            }
            System.Console.ReadKey();

            var buscaTurma = new FormTurma().buscaTurma(3);
            System.Console.WriteLine(buscaTurma.turmaId + " - " + buscaTurma.nome);

            // Form Semestre
            var incluiSemestre = new Semestre
            {
                nome = "teste",
                ativo = true
            };
            new FormSemestre().incluirSemestre(incluiSemestre);

            var alteraSemestre = new Semestre
            {
                semestreId = 4,
                nome = "teste teste",
                ativo = true
            };
            new FormSemestre().alterarSemestre(alteraSemestre);

            new FormSemestre().excluirSemestre(2);

            ICollection<Semestre> semestres = new FormSemestre().listarSemestre();

            foreach (Semestre semestre in semestres)
            {
                System.Console.WriteLine(semestre.semestreId + " - " + semestre.nome);
            }
            System.Console.ReadKey();
            
            var buscaSemestre = new FormSemestre().buscaSemestre(3);
            System.Console.WriteLine(buscaSemestre.semestreId + " - " + buscaSemestre.nome);
        }
        private void btnExcluir_Click(object sender, EventArgs e)
        {
            if (MessageBox.Show("Deseja excluir usuario?", this.Text, MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
            {
                int RA = int.Parse(txtRA.Text);

                try
                {
                    FormUsuario usuarioDao = new FormUsuario();
                    usuarioDao.excluirUsuario(RA);
                    limparCampos();
                } catch(Exception ex)
                {
                    MessageBox.Show("Erro: " + ex.Message, this.Text, MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
                
            }

            apresentarUsuarios();
            tipoAcao = (int)Acao.nenhum;
            travarCampos(tipoAcao);
        }
        private void btnUsuario_Click(object sender, EventArgs e)
        {
            FormUsuario usuarioDao = new FormUsuario();

            if (txtPesquisaNome.Text != "")
            {
                ICollection<Usuario> usuarios = usuarioDao.buscaNomeUsuario(txtPesquisaNome.Text);
                carregarGrid(usuarios);
                return;
            }

            if (txtPesquisaEmail.Text != "")
            {
                ICollection<Usuario> usuarios = usuarioDao.buscaEmailUsuario(txtPesquisaEmail.Text);
                carregarGrid(usuarios);
                return;
            }



        }
        private void atualizarCampos()
        {
            try
            {

                Usuario usuario = new Usuario();
                FormUsuario usuarioDao = new FormUsuario();

                if(codigoUsuario != 0)
                {
                    usuario = usuarioDao.buscaUsuario(codigoUsuario);

                    txtRA.Text = usuario.RA.ToString();
                    txtNome.Text = usuario.nome.ToString();
                    txtEmail.Text = usuario.email.ToString();
                    txtSenha.Text = usuario.senha.ToString();
                    chkAtivo.Checked = usuario.visualizacao;

                    if (Usuario.Perfil.Administrador == usuario.perfil)
                    {
                        rbnProfesssor.Checked = true;
                    }

                    if (Usuario.Perfil.Usuario == usuario.perfil)
                    {
                        rbnAluno.Checked = true;
                    }

                }
                
                tipoAcao = (int)Acao.nenhum;
                travarCampos(tipoAcao);

            } catch(Exception ex)
            {
                MessageBox.Show("Erro: " + ex.Message, this.Text, MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }
        private void apresentarUsuarios()
        {
            FormUsuario usuarioDao = new FormUsuario();
            ICollection<Usuario> usuarios = usuarioDao.listarLogin();

            carregarGrid(usuarios);
        }
        private void btnSalvar_Click(object sender, EventArgs e)
        {

            if (consistir() == false)
            {
                return;
            }

            Usuario usuario = new Usuario();
            FormUsuario usuarioDao = new FormUsuario();

            usuario.RA = int.Parse(txtRA.Text);
            usuario.nome = txtNome.Text;
            usuario.email = txtEmail.Text;
            usuario.senha = txtSenha.Text;
            usuario.visualizacao = chkAtivo.Checked;
            usuario.ativo = true;
            
            if (rbnProfesssor.Checked)
            {
                usuario.perfil = Usuario.Perfil.Administrador;
            }
            else
            {
                usuario.perfil = Usuario.Perfil.Usuario;
            }

            try
            {

                if (tipoAcao == (int)Acao.incluir)
                {
                    usuarioDao.incluirUsuario(usuario);
                    MessageBox.Show("Usuario salvo com sucesso.", this.Text, MessageBoxButtons.OK, MessageBoxIcon.Information);
                }

                if (tipoAcao == (int)Acao.alterar)
                {
                    usuarioDao.alterarUsuario(usuario);
                    MessageBox.Show("Usuario alterado com sucesso.", this.Text, MessageBoxButtons.OK, MessageBoxIcon.Information);
                }

            } catch (Exception ex)
            {
                MessageBox.Show("Erro: " + ex.Message, this.Text, MessageBoxButtons.OK, MessageBoxIcon.Error);
            }

            atualizarCampos();
            apresentarUsuarios();
            tipoAcao = (int)Acao.nenhum;
            travarCampos(tipoAcao);
        }