/// <summary>
 /// Insere os dados do model
 /// </summary>
 private void Insere()
 {
     rEstoque regra = new rEstoque();
     mEstoque model;
     try
     {
         this.ValidaCamposNulos();
         model = this.PegaDadosTela();
         regra.ValidarInsere(model);
         this.btnLimpa_Click(null, null);
         this.rdbDefeitoNao.Checked = true;
         MessageBox.Show("Registro Salvo com Sucesso!", "Atenção", MessageBoxButtons.OK, MessageBoxIcon.Asterisk, MessageBoxDefaultButton.Button1);
     }
     catch (TCC.Regra.Exceptions.Estoque.NomEstoqueExistenteException)
     {
         MessageBox.Show("Nome do Estoque já Cadastrado!", "Atenção", MessageBoxButtons.OK, MessageBoxIcon.Asterisk, MessageBoxDefaultButton.Button1);
         this.btnBuscaDepartamento.Focus();
     }
     catch (TCC.Regra.Exceptions.CodigoDepartamentoVazioException)
     {
         MessageBox.Show("É Necessário Informar o Departamento do Estoque", "Atenção", MessageBoxButtons.OK, MessageBoxIcon.Asterisk, MessageBoxDefaultButton.Button1);
         this.btnBuscaDepartamento.Focus();
     }
     catch (TCC.Regra.Exceptions.Estoque.NomEstoqueVazioException)
     {
         MessageBox.Show("É Necessário Cadastrar o nome do Estoque", "Atenção", MessageBoxButtons.OK, MessageBoxIcon.Asterisk, MessageBoxDefaultButton.Button1);
         this.txtNome.Focus();
     }
     catch (Exception ex)
     {
         MessageBox.Show(ex.Message);
     }
     finally
     {
         regra = null;
         model = null;
     }
 }
 private void PopulaModelCompletoAlteracao()
 {
     rEstoque regraEstoque = new rEstoque();
     DataTable dtRegistroEstoque = null;
     try
     {
         dtRegistroEstoque = regraEstoque.BuscaUmRegistro(this._model);
         this._model.Deserialize(dtRegistroEstoque);
     }
     catch (Exception ex)
     {
         throw ex;
     }
     finally
     {
         regraEstoque = null;
         if (dtRegistroEstoque != null)
         {
             dtRegistroEstoque.Dispose();
             dtRegistroEstoque = null;
         }
     }
 }
 private void PopulaModel()
 {
     rEstoque regra = new rEstoque();
     try
     {
         this.dgEstoque.DataSource = regra.BuscaEstoque(this.txtFiltro.Text);
         this.dgEstoque.Columns[0].Visible = false;
     }
     catch (Exception ex)
     {
         throw ex;
     }
     finally
     {
         regra = null;
     }
 }
 /// <summary>
 /// Busca Estoques atravez do filtro escolhido pelo usuario
 /// </summary>
 /// <param name="nomeEstoque">o filtro passado pelo usuário pode ser Vazio</param>
 /// <returns>DataTable com o resultado da query</returns>
 private DataTable BuscaEstoque(string nomeEstoque)
 {
     rEstoque regraEstoque = new rEstoque();
     try
     {
         return regraEstoque.BuscaEstoque(nomeEstoque);
     }
     catch (Exception ex)
     {
         throw ex;
     }
     finally
     {
         regraEstoque = null;
     }
 }
        /// <summary>
        /// Pega os dados da tela e popula o model
        /// </summary>
        /// <returns>Model populado</returns>
        private mEstoque PegaDadosTela()
        {
            mEstoque model = new mEstoque();
            rEstoque regra = new rEstoque();

            try
            {
                model.Id_estoque = regra.BuscaIdMaximo();
                model.Id_depto = Convert.ToInt32(this._modelDepartamento.IdDepto);
                model.Dsc_estoque = this.txtNome.Text;
                model.Dat_alt = DateTime.Now;
                model.Flg_ativo = true;
                model.Flg_negativo = rdbDefeitoSim.Checked;

                return model;
            }
            catch (Exception ex)
            {

                throw ex;
            }
            finally
            {
                model = null;
            }
        }