public static int GravarRecursoOperador(Operador Operador)
        {
            int codigo = PersistenciaOracle.ObterProximoCodigo("OPERADOR");

            OracleConnection conexao = PersistenciaOracle.ObterConexao();
            conexao.Open();
            OracleCommand comando = new OracleCommand("INSERT INTO OPERADOR(CODIGO,NOME,TELEFONE,CODIGOIDENTIFICACAO,DTINCLUSAO) VALUES(:CODIGO,:NOME,:TELEFONE,:CODIGOIDENTIFICACAO,SYSDATE)");
            comando.Connection = conexao;
            comando.Parameters.Add("CODIGO", codigo);
            comando.Parameters.Add("NOME", Operador.Nome);
            comando.Parameters.Add("TELEFONE", Operador.Telefone);
            comando.Parameters.Add("CODIGOIDENTIFICACAO", Operador.CodigoIdentificacao);

            comando.Prepare();
            comando.ExecuteNonQuery();
            conexao.Close();

            return codigo;
        }
        public static List<Operador> ConsultarOperadores(Operador Operador, bool ApenasAtivos)
        {
            String comandoSql = "SELECT CODIGO, NOME,TELEFONE,CODIGOIDENTIFICACAO,DTINATIVACAO,DTINCLUSAO FROM OPERADOR WHERE 1 = 1 ";

            if (!string.IsNullOrEmpty(Operador.Nome))
            {
                comandoSql += string.Format(" AND UPPER(NOME) LIKE '{0}%' ", Operador.Nome.ToUpper());
            }

            if(Operador.CodigoIdentificacao > 0)
            {
                comandoSql += string.Format(" AND CODIGOIDENTIFICACAO = {0} ", Operador.CodigoIdentificacao);
            }

            if (ApenasAtivos)
            {
                comandoSql += " AND DTINATIVACAO IS NULL ";
            }

            OracleConnection conexao = PersistenciaOracle.ObterConexao();
            conexao.Open();
            OracleCommand comando = new OracleCommand(comandoSql);
            comando.Connection = conexao;

            List<Operador> operadores = new List<Operador>();
            OracleDataReader leitor = comando.ExecuteReader();
            while (leitor.Read())
            {
                Operador opr = new Operador();
                opr.Codigo = UtilidadePersistencia.ObterValorTratado<int>(leitor[0]);
                opr.Nome = UtilidadePersistencia.ObterValorTratado<String>(leitor[1]);
                opr.Telefone = UtilidadePersistencia.ObterValorTratado<String>(leitor[2]);
                opr.CodigoIdentificacao = UtilidadePersistencia.ObterValorTratado<decimal>(leitor[3]);
                opr.DtInativacao = UtilidadePersistencia.ObterValorDateTimeTratado<DateTime?>(leitor[4]);
                opr.DtInclusao = UtilidadePersistencia.ObterValorDateTimeTratado<DateTime?>(leitor[5]);

                operadores.Add(opr);
            }
            conexao.Close();

            return operadores;
        }
        public static void AtualizarOperador(Operador Operador)
        {
            String comandoSql =
                @"UPDATE OPERADOR SET TELEFONE = :TELEFONE, CODIGOIDENTIFICACAO = :CODIGOIDENTIFICACAO, DTINATIVACAO = :DTINATIVACAO WHERE CODIGO = :CODIGO";

            OracleConnection conexao = PersistenciaOracle.ObterConexao();
            conexao.Open();

            OracleCommand comando = new OracleCommand(comandoSql);
            comando.Connection = conexao;

            comando.Parameters.Add("TELEFONE", Operador.Telefone);
            comando.Parameters.Add("CODIGOIDENTIFICACAO", Operador.CodigoIdentificacao);
            comando.Parameters.Add("DTINATIVACAO", Operador.DtInativacao);

            comando.Parameters.Add("CODIGO", Operador.Codigo);

            comando.Prepare();
            comando.ExecuteNonQuery();
            conexao.Close();
        }
        private void button_Click(object sender, RoutedEventArgs e)
        {
            if (string.IsNullOrEmpty(txtNome.Text))
            {
                Mensagens.ExibirMensagemAlerta(this, "É obrigatório preencher o nome.", txtNome);
                return;
            }

            if(string.IsNullOrEmpty(txtCodIdentificacao.Password))
            {
                Mensagens.ExibirMensagemAlerta(this, "É obrigatório informar o código de identificação.", txtNome);
                return;
            }

            Operador opr = new Operador();
            opr.Nome = this.txtNome.Text;
            opr.Telefone = this.mskTxtTelefone.Text;
            opr.CodigoIdentificacao = Convert.ToDecimal(this.txtCodIdentificacao.Password);

            if (this.chkInativo.IsChecked.GetValueOrDefault())
            {
                opr.DtInativacao = DateTime.Now;
            }

            if (!this.EstadoDeAlteracao)
            {

                if (Persistencia.PersistenciaOperador.ConsultarOperadores(new Operador() { Nome = opr.Nome }, false).Count() > 0)
                {
                    Mensagens.ExibirMensagemAlerta(this, "Já existe operador cadastrado com este nome!");
                    return;
                }

                Persistencia.PersistenciaOperador.GravarRecursoOperador(opr);
                Log.RegistrarMensagemLog("Operador " + opr.Nome + " foi cadastrado!");
            }
            else
            {
                opr.Codigo = this.CodigoEmAlteracao;
                Persistencia.PersistenciaOperador.AtualizarOperador(opr);
                Log.RegistrarMensagemLog("Operador " + opr.Nome + " foi atualizado!");
            }

            Mensagens.ExibirMensagemAlerta(this, "Ação realizada com sucesso.");

            this.LimparTela();
        }
 private void btnPesquisa_Click(object sender, RoutedEventArgs e)
 {
     Operador oper = new Operador() { Nome = this.txtNomePesquisa.Text };
     List<Operador> operadores = Persistencia.PersistenciaOperador.ConsultarOperadores(oper, false).Where( op => op.Codigo > 0).ToList(); //deixando de fora o usuário admin 0
     this.dataGrid.DataContext = operadores;
 }
        private void PreencherDadosNaTela(Operador opr)
        {
            this.txtNome.Text = opr.Nome;
            this.txtCodIdentificacao.Password = opr.CodigoIdentificacao.ToString();
            this.mskTxtTelefone.Text = opr.Telefone;

            if (opr.DtInativacao != null && opr.DtInativacao != default(DateTime?))
            {
                this.chkInativo.IsChecked = true;
            }
        }
        private void ColocarTelaEmEstadoAlteracao(Operador opr)
        {
            this.CodigoEmAlteracao = opr.Codigo;
            PreencherDadosNaTela(opr);

            this.EstadoDeAlteracao = true;
            this.txtNome.IsEnabled = false;
            this.chkInativo.IsEnabled = true;
            this.mskTxtTelefone.Focus();
            tabControl.SelectedIndex = 1;
        }