/// <summary>
 /// Pega os dados que estão populados Atravez do Grid e Completa o mapper
 /// </summary>
 private void PopulaModelCompletoAlteracao()
 {
     rColaborador regraColaborador = new rColaborador();
     DataTable dtRegistroColaborador = null;
     try
     {
         dtRegistroColaborador = regraColaborador.BuscaUmRegistro(this._model);
         this._model.Deserialize(dtRegistroColaborador);
     }
     catch (Exception ex)
     {
         throw ex;
     }
     finally
     {
         regraColaborador = null;
         if (dtRegistroColaborador != null)
         {
             dtRegistroColaborador.Dispose();
             dtRegistroColaborador = null;
         }
     }
 }
 private void PopulaGrid()
 {
     rColaborador regraColaborador = new rColaborador();
     DataTable dt = new DataTable();
     try
     {
         dt = regraColaborador.BuscaColaborador(this.txtFiltro.Text);
         dgColaborador.DataSource = dt;
         dgColaborador.Columns[0].Visible = false;
     }
     catch (Exception ex)
     {
         throw ex;
     }
     finally
     {
         regraColaborador = null;
         dt = null;
     }
 }
        /// <summary>
        /// Pega os dados da tela e popula o model
        /// </summary>
        /// <returns>Model populado</returns>
        private mColaborador PegaDadosTela()
        {
            mColaborador model = new mColaborador();
            rColaborador regra = new rColaborador();

            try
            {
                if (base.Alteracao == true)
                {
                    model.IdColab = this._modelColaborador.IdColab;
                }
                else
                {
                    model.IdColab = regra.BuscaIdMaximo();
                }
                model.NomeColab = txtNome.Text;

                if (string.IsNullOrEmpty(this.txtDataNasc.Text) != true)
                {
                    string data = this.txtDataNasc.Text.Replace("/", string.Empty);
                    data = data.Replace(" ", string.Empty);
                    TCC.Regra.Util.Validacoes.ValidaMasked(data, TCC.Regra.Util.TipoMasked.data);
                    model.DatNasc = Convert.ToDateTime(this.txtDataNasc.Text);
                }
                model.Sexo = CbSexo.Text;

                if (string.IsNullOrEmpty(this.txtDDD.Text) == true)
                {
                    model.Ddd = null;
                }
                else
                {
                    model.Ddd = Convert.ToInt32(this.txtDDD.Text);
                }

                string tel = this.txtTelefone.Text;
                tel = tel.Replace(" ", string.Empty).Replace("-", string.Empty);
                if (string.IsNullOrEmpty(tel) == true)
                {
                    model.Telefone = null;
                }
                else
                {
                    model.Telefone = Convert.ToInt32(tel);
                }
                model.NomeRua = txtRua.Text;
                if (string.IsNullOrEmpty(txtNumero.Text) == true)
                {
                    model.NroEnd = null;
                }
                else
                {
                    model.NroEnd = Convert.ToInt32(txtNumero.Text);
                }
                model.ComplEnd = txtComplemento.Text;
                model.BairrEnd = txtBairro.Text;

                string cep = txtCep.Text.Replace("-", string.Empty).Replace(" ", string.Empty);
                if (string.IsNullOrEmpty(cep) == true)
                {
                    model.Cep = null;
                }
                else
                {
                    model.Cep = Convert.ToInt32(cep);
                }
                model.Cidade = txtCidade.Text;
                model.Estado = this.cbEstado.SelectedValue.ToString();
                if (string.IsNullOrEmpty(this.txtEmail.Text) == true)
                {
                    model.Email = null;
                }
                else
                {
                    model.Email = this.txtEmail.Text;
                }
                model.IdDepto = Convert.ToInt32(this._modelDepartamento.IdDepto);
                if (this._modelUsuario.IdUsuario > 0)
                {
                    model.IdUsuario = Convert.ToInt32(this._modelUsuario.IdUsuario);
                }
                else
                {
                    model.IdUsuario = null;
                }
                model.Rg = txtRg.Text;

                string cpf = this.txtCpf.Text.Replace(".", string.Empty);
                cpf = cpf.Replace("-", string.Empty);
                cpf = cpf.Replace(" ", string.Empty);
                if (string.IsNullOrEmpty(cpf) == true)
                {
                    model.Cpf = null;
                }
                else
                {
                    model.Cpf = cpf;
                }
                model.DatAtl = DateTime.Now;

                model.FlgAtivo = true;
                return model;
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
 private void DeletaCadastro()
 {
     rColaborador regraColaborador = new rColaborador();
     try
     {
         regraColaborador.ValidarDeleta(this._model);
     }
     catch (Exception ex)
     {
         throw ex;
     }
     finally
     {
         regraColaborador = null;
     }
 }
 /// <summary>
 /// Insere os dados do model no banco
 /// </summary>
 private void Insere()
 {
     mColaborador modelColaborador = new mColaborador();
     rColaborador regraColaborador = new rColaborador();
     rUsuario regraUsuario = null;
     try
     {
         this.ValidaDadosNulos();
         modelColaborador = this.PegaDadosTela();
         regraColaborador.ValidaDados(modelColaborador, base.Alteracao);
         if (base.Alteracao == false)
         {
             //Verifica se existe usuario para associar
             //----------------------------------------
             if (this._modelUsuario != null)
             {
                 regraUsuario = new rUsuario();
                 regraUsuario.ValidarInsere(this._modelUsuario);
             }
             if (modelColaborador != null)
             {
                 regraColaborador.ValidarInsere(modelColaborador);
             }
             DialogResult resultado = MessageBox.Show("Deseja associar este Funcionário com um Usuário?", "Atenção", MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button1);
             if (resultado == DialogResult.Yes)
             {
                 regraUsuario = new rUsuario();
                 this.AbreTelaAssociaUsuario();
                 regraUsuario.ValidarInsere(this._modelUsuario);
             }
             this.btnApaga_Click(null, null);
         }
         else
         {
             modelColaborador = this.PegaDadosTela();
             regraColaborador.ValidarAltera(modelColaborador);
         }
         this.btnApaga_Click(null, null);
         this.btnConfirma.Enabled = false;
         MessageBox.Show("Registro Salvo com Sucesso!", "Atenção", MessageBoxButtons.OK, MessageBoxIcon.Asterisk, MessageBoxDefaultButton.Button1);
     }
     catch (TCC.Regra.Exceptions.Colaborador.NomeVazioExeption)
     {
         MessageBox.Show("É Necessário Preencher o campo Nome", "Atenção", MessageBoxButtons.OK, MessageBoxIcon.Asterisk, MessageBoxDefaultButton.Button1);
         this.txtNome.Focus();
     }
     catch (TCC.Regra.Exceptions.Colaborador.DataNascimentoVazioException)
     {
         MessageBox.Show("É Necessário Preencher o campo Data Nascimento", "Atenção", MessageBoxButtons.OK, MessageBoxIcon.Asterisk, MessageBoxDefaultButton.Button1);
         this.txtDataNasc.Focus();
     }
     catch (TCC.Regra.Exceptions.Validacoes.DataInvalidaException ex)
     {
         MessageBox.Show("Erro no " + ex.TipoErro.ToString() + " da Data: " + ex.DataErrada, "Atenção", MessageBoxButtons.OK, MessageBoxIcon.Asterisk, MessageBoxDefaultButton.Button1);
         this.txtDataNasc.Focus();
     }
     catch (TCC.Regra.Exceptions.Colaborador.DDDVazioExeption)
     {
         MessageBox.Show("É Necessário Preencher o campo DDD", "Atenção", MessageBoxButtons.OK, MessageBoxIcon.Asterisk, MessageBoxDefaultButton.Button1);
         this.txtDDD.Focus();
     }
     catch (TCC.Regra.Exceptions.Colaborador.TelefoneVazioExeption)
     {
         MessageBox.Show("É Necessário Preencher o campo Telefone", "Atenção", MessageBoxButtons.OK, MessageBoxIcon.Asterisk, MessageBoxDefaultButton.Button1);
         this.txtTelefone.Focus();
     }
     catch (TCC.Regra.Exceptions.Colaborador.RuaVazioExeption)
     {
         MessageBox.Show("É Necessário Preencher o campo Rua", "Atenção", MessageBoxButtons.OK, MessageBoxIcon.Asterisk, MessageBoxDefaultButton.Button1);
         this.txtRua.Focus();
     }
     catch (TCC.Regra.Exceptions.Colaborador.NumeroVazioExeption)
     {
         MessageBox.Show("É Necessário Preencher o campo Numero", "Atenção", MessageBoxButtons.OK, MessageBoxIcon.Asterisk, MessageBoxDefaultButton.Button1);
         this.txtNumero.Focus();
     }
     catch (TCC.Regra.Exceptions.Colaborador.BairroVazioExeption)
     {
         MessageBox.Show("É Necessário Preencher o campo Bairro", "Atenção", MessageBoxButtons.OK, MessageBoxIcon.Asterisk, MessageBoxDefaultButton.Button1);
         this.txtBairro.Focus();
     }
     catch (TCC.Regra.Exceptions.Colaborador.CepVazioException)
     {
         MessageBox.Show("É Necessário Preencher o campo Cep", "Atenção", MessageBoxButtons.OK, MessageBoxIcon.Asterisk, MessageBoxDefaultButton.Button1);
         this.txtCep.Focus();
     }
     catch (TCC.Regra.Exceptions.Colaborador.CidadeVazioExeption)
     {
         MessageBox.Show("É Necessário Preencher o campo Cidade", "Atenção", MessageBoxButtons.OK, MessageBoxIcon.Asterisk, MessageBoxDefaultButton.Button1);
         this.txtCidade.Focus();
     }
     catch (TCC.Regra.Exceptions.CodigoDepartamentoVazioException)
     {
         MessageBox.Show("Buscar Codigo Departamento", "Atenção", MessageBoxButtons.OK, MessageBoxIcon.Asterisk, MessageBoxDefaultButton.Button1);
         this.btnBuscaDepartamento.Focus();
     }
     catch (TCC.Regra.Exceptions.Colaborador.RgVazioExeption)
     {
         MessageBox.Show("É Necessário Preencher o campo RG", "Atenção", MessageBoxButtons.OK, MessageBoxIcon.Asterisk, MessageBoxDefaultButton.Button1);
         this.txtRg.Focus();
     }
     catch (TCC.Regra.Exceptions.Colaborador.CpfVazioExeption)
     {
         MessageBox.Show("É Necessário Preencher o campo CPF", "Atenção", MessageBoxButtons.OK, MessageBoxIcon.Asterisk, MessageBoxDefaultButton.Button1);
         this.txtCpf.Focus();
     }
     catch (TCC.Regra.Exceptions.Validacoes.MaskedInvalidaException ex)
     {
         MessageBox.Show(ex.Mensagem, "Atenção", MessageBoxButtons.OK, MessageBoxIcon.Asterisk, MessageBoxDefaultButton.Button1);
     }
     catch (TCC.Regra.Exceptions.Validacoes.EmailInvalidoException)
     {
         MessageBox.Show("Campo E-mail incorreto!", "Atenção", MessageBoxButtons.OK, MessageBoxIcon.Asterisk, MessageBoxDefaultButton.Button1);
         this.txtEmail.Focus();
     }
     catch (TCC.Regra.Exceptions.Colaborador.CpfExistenteException)
     {
         MessageBox.Show("CPF já Cadastrado", "Atenção", MessageBoxButtons.OK, MessageBoxIcon.Asterisk, MessageBoxDefaultButton.Button1);
         this.txtCpf.Focus();
     }
     catch (Exception ex)
     {
         MessageBox.Show(ex.Message);
     }
     finally
     {
         modelColaborador = null;
         regraColaborador = null;
         regraUsuario = null;
     }
 }