//Metodo responsanvel por LOGAR usuario
        private void logar(String login, String password)
        {
            usuario = new Usuario();

            PoolConexoes conexao = new PoolConexoes();
            usuario = conexao.getLogin(login, password);

            if (usuario.Login != null && usuario.Senha != null)
            {
                if (usuario.Login.Equals(login) && usuario.Senha.Equals(password))
                {
                    this.Hide();

                    if (usuario.Permissao.Equals("Operacional"))
                    {
                        FormPrincipalOperacional formPrincipalOperacional = new FormPrincipalOperacional();
                        formPrincipalOperacional.CacheUsuario = usuario;
                        formPrincipalOperacional.Show();
                    }
                    else
                    {
                        FormPrincipal formPrincipal = new FormPrincipal();
                        formPrincipal.CacheUsuario = usuario;
                        formPrincipal.Show();
                    }

                }

            }
            else
            {
                MessageBox.Show("Login ou senha invalidos.");
            }
        }
        //METODO VERIFICA ALTERACOES NO CADASTRO ATUAL
        private void alterarDadosUsuarios()
        {
            Usuario usuario = pool.getUsuario(textBoxMatricula.Text);

            Boolean isAlterar = isAlteracao(usuario);

            if (isAlterar)
            {
                Usuario novoUsuario = new Usuario();

                novoUsuario.Matricula = textBoxMatricula.Text;
                novoUsuario.Nome = textBoxNome.Text;
                novoUsuario.Endereco = textBoxEndereco.Text;
                novoUsuario.Telefone = textBoxTelefone.Text;
                novoUsuario.Rg = textBoxRG.Text;
                novoUsuario.Cpf = textBoxCPF.Text;
                novoUsuario.Sexo = comboBoxSexo.Text;
                novoUsuario.Login = textBoxLogin.Text;
                novoUsuario.Senha = textBoxSenha.Text;
                novoUsuario.Permissao = comboBoxPermissao.Text;
                try
                {
                    bool insert = pool.updateUsuario(novoUsuario);

                    if (insert)
                    {
                        MessageBox.Show("Cadastro alterado com sucesso.");
                    }
                    else
                    {
                        MessageBox.Show("Erro ao alterar usuario.");
                    }
                }
                catch (Exception)
                {
                    MessageBox.Show("Erro ao alterar usuario.");
                }
            }
            else
            {
                MessageBox.Show("Não houve alterações.");
            }
        }
        //METODO PARA UPDATE USUARIO
        public Boolean updateUsuario(Usuario usuario)
        {
            try
            {
                SqlConnection conexao = new SqlConnection(caminho);
                conexao.Open();

                String sql = "update Usuario set matricula = @matricula, nome = @nome, endereco = @endereco, telefone = @telefone, rg = @rg, cpf = @cpf," +
                " sexo = @sexo, login = @login, senha = @senha, permissao = @permissao " +
                " WHERE matricula = '" + usuario.Matricula + "'";

                SqlCommand comando = new SqlCommand(sql, conexao);
                comando.Parameters.AddWithValue("matricula", usuario.Matricula);
                comando.Parameters.AddWithValue("nome", usuario.Nome);
                comando.Parameters.AddWithValue("endereco", usuario.Endereco);
                comando.Parameters.AddWithValue("telefone", usuario.Telefone);
                comando.Parameters.AddWithValue("rg", usuario.Rg);
                comando.Parameters.AddWithValue("cpf", usuario.Cpf);
                comando.Parameters.AddWithValue("sexo", usuario.Sexo);
                comando.Parameters.AddWithValue("login", usuario.Login);
                comando.Parameters.AddWithValue("senha", usuario.Senha);
                comando.Parameters.AddWithValue("permissao", usuario.Permissao);

                comando.ExecuteNonQuery();

            }
            catch (Exception)
            {
                return false;
            }

            return true;
        }
        //String caminho =  Projeto.Properties.Settings.Default.DatabaseEstoqueConnectionString;
        //METODO INSERE NOVO USUARIO
        public bool insertUsuario(Usuario usuario)
        {
            try
            {
                SqlConnection conexao = new SqlConnection(caminho);
                conexao.Open();

                String sql = "insert into Usuario(matricula, nome, endereco, telefone, rg, cpf, sexo, login, senha, permissao) " +
                             " values (@matricula, @nome, @endereco, @telefone, @rg, @cpf, @sexo, @login, @senha, @permissao) ";

                SqlCommand comando = new SqlCommand(sql, conexao);
                comando.Parameters.AddWithValue("matricula", usuario.Matricula);
                comando.Parameters.AddWithValue("nome", usuario.Nome);
                comando.Parameters.AddWithValue("endereco", usuario.Endereco);
                comando.Parameters.AddWithValue("telefone", usuario.Telefone);
                comando.Parameters.AddWithValue("rg", usuario.Rg);
                comando.Parameters.AddWithValue("cpf", usuario.Cpf);
                comando.Parameters.AddWithValue("sexo", usuario.Sexo);
                comando.Parameters.AddWithValue("login", usuario.Login);
                comando.Parameters.AddWithValue("senha", usuario.Senha);
                comando.Parameters.AddWithValue("permissao", usuario.Permissao);

                comando.ExecuteNonQuery();

            }
            catch (Exception)
            {
                return false;
            }

            return true;
        }
        //METODO BUSCA USUARIO TENDO COMO PARAMETRO MATRICULA
        public Usuario getUsuario(String matricula)
        {
            SqlConnection conexao = new SqlConnection(caminho);
            conexao.Open();

            String sql = "SELECT * FROM Usuario WHERE matricula = " + matricula;

            SqlCommand comando = new SqlCommand(sql, conexao);
            SqlDataReader dr = comando.ExecuteReader();

            Usuario usuario = null;

            while (dr.Read())
            {
                usuario = new Usuario();

                usuario.Matricula = dr[0].ToString();
                usuario.Nome = dr[1].ToString();
                usuario.Endereco = dr[2].ToString();
                usuario.Telefone = dr[3].ToString();
                usuario.Rg = dr[4].ToString();
                usuario.Cpf = dr[5].ToString();
                usuario.Sexo = dr[6].ToString();
                usuario.Login = dr[7].ToString();
                usuario.Senha = dr[8].ToString();
                usuario.Permissao = dr[9].ToString();

            }

            return usuario;
        }
        //METODO BUSCA USUARIO TENDO COMO PARAMETRO MATRICULA E NOME
        public ArrayList getUsuario(String matricula, String nome)
        {
            SqlConnection conexao = new SqlConnection(caminho);
            conexao.Open();

            String sql = "SELECT * FROM Usuario WHERE 1=1 ";

            if (!matricula.Equals(""))
            {
                sql += " AND matricula = " + matricula;
            }

            if (!nome.Equals(""))
            {
                sql += " AND nome LIKE '%" + nome + "%'";
            }

            SqlCommand comando = new SqlCommand(sql, conexao);
            SqlDataReader dr = comando.ExecuteReader();

            ArrayList arrUsuario = new ArrayList();

            while (dr.Read())
            {

                Usuario usuario = new Usuario();

                usuario.Matricula = dr[0].ToString();
                usuario.Nome = dr[1].ToString();
                usuario.Endereco = dr[2].ToString();
                usuario.Telefone = dr[3].ToString();
                usuario.Rg = dr[4].ToString();
                usuario.Cpf = dr[5].ToString();
                usuario.Sexo = dr[6].ToString();
                usuario.Login = dr[7].ToString();
                usuario.Senha = dr[8].ToString();
                usuario.Permissao = dr[9].ToString();

                arrUsuario.Add(usuario);
            }

            return arrUsuario;
        }
        //METODO BUSCA LOGIN TENDO COMO PARAMETRO LOGIN E SENHA
        public Usuario getLogin(String login, String senha)
        {
            Usuario usuario = new Usuario();

            SqlConnection conexao = new SqlConnection(caminho);
            conexao.Open();

            String sql = " Select * From Usuario Where login = '******' AND senha = '" + senha + "'";

            try
            {

                SqlCommand comando = new SqlCommand(sql, conexao);
                SqlDataReader dr = comando.ExecuteReader();

                while (dr.Read())
                {
                    usuario.Matricula = dr[0].ToString();
                    usuario.Nome = dr[1].ToString();
                    usuario.Endereco = dr[2].ToString();
                    usuario.Telefone = dr[3].ToString();
                    usuario.Rg = dr[4].ToString();
                    usuario.Cpf = dr[5].ToString();
                    usuario.Sexo = dr[6].ToString();
                    usuario.Login = dr[7].ToString();
                    usuario.Senha = dr[8].ToString();
                    usuario.Permissao = dr[9].ToString();
                }
            }
            catch (Exception)
            {

                conexao.Close();
                return null;
            }

            conexao.Close();
            return usuario;
        }
        //METODO RETORNA BOOLEANO SOBRE ALTERACOES NOS CAMPOS
        private Boolean isAlteracao(Usuario usuario)
        {
            if (!usuario.Matricula.Equals(textBoxMatricula.Text))
            {
                return true;
            }

            if (!usuario.Nome.Equals(textBoxNome.Text))
            {
                return true;
            }

            if (!usuario.Endereco.Equals(textBoxEndereco.Text))
            {
                return true;
            }

            if (!usuario.Telefone.Equals(textBoxTelefone.Text))
            {
                return true;
            }

            if (!usuario.Rg.Equals(textBoxRG.Text))
            {
                return true;
            }

            if (!usuario.Cpf.Equals(textBoxCPF.Text))
            {
                return true;
            }

            if (!usuario.Sexo.Equals(comboBoxSexo.Text))
            {
                return true;
            }

            if (!usuario.Login.Equals(textBoxLogin.Text))
            {
                return true;
            }

            if( !usuario.Senha.Equals(textBoxSenha.Text))
            {
                return true;
            }

            if( !usuario.Permissao.Equals(comboBoxPermissao.Text))
            {
                return true;
            }

            return false;
        }
        //METODO PARA CADASTRAR USUARIO
        private void cadastrarUsuario()
        {
            if (textBoxSenha.Text.Equals(textBoxConfSenha.Text))
            {
                Usuario usuario = new Usuario();

                usuario.Matricula = textBoxMatricula.Text;
                usuario.Nome = textBoxNome.Text;
                usuario.Endereco = textBoxEndereco.Text;
                usuario.Telefone = textBoxTelefone.Text;
                usuario.Rg = textBoxRG.Text;
                usuario.Cpf = textBoxCPF.Text;
                usuario.Sexo = comboBoxSexo.Text;
                usuario.Login = textBoxLogin.Text;
                usuario.Senha = textBoxSenha.Text;
                usuario.Permissao = comboBoxPermissao.Text;
                ArrayList mensagens = valida.validaUsuario(usuario);

                if (mensagens.Count > 0)
                {
                    String mensagem = (String)mensagens[0];
                    MessageBox.Show(mensagem);
                }
                else
                {
                    try
                    {
                        bool insert = pool.insertUsuario(usuario);

                        if (insert)
                        {
                            MessageBox.Show("Cadastro salvo com sucesso.");
                            limpar();
                        }
                        else
                        {
                            MessageBox.Show("Erro ao cadastro usuario.");
                        }
                    }
                    catch (Exception)
                    {
                        MessageBox.Show("Erro ao cadastro usuario.");
                    }
                }
            }
            else
            {
                MessageBox.Show("Senhas estão diferentes.");
            }
        }
        //METODO VALIDA CLASSE DE USUARIO
        public ArrayList validaUsuario(Usuario usuario)
        {
            ArrayList listErro = new ArrayList();
            String mensagem = "";

            if(usuario.Matricula.Equals("")){

                mensagem = "Necessário Matricula.";
                listErro.Add(mensagem);
            }

            if (usuario.Rg.Equals("")){
                mensagem = "Necessário RG.";
                listErro.Add(mensagem);
            }

            if (usuario.Cpf.Equals(""))
            {
                mensagem = "Necessário CPF.";
                listErro.Add(mensagem);
            }

            if(usuario.Permissao.Equals("")){
                mensagem = "Necessário Permissão.";
                listErro.Add(mensagem);
            }

            if (usuario.Login.Equals(""))
            {
                mensagem = "Necessário Login.";
                listErro.Add(mensagem);
            }

            if (usuario.Senha.Equals(""))
            {
                mensagem = "Necessário Senha.";
                listErro.Add(mensagem);
            }

            return listErro;
        }