public override void Novo()
        {
            txtCodigo.txtValor.ReadOnly = false;
            try
            {
                _clienteEspecificacaoApp = new ClienteEspecificacaoApp();
                var model = _clienteEspecificacaoApp.Novo(Funcoes.IdUsuario);
                txtData.txtData.Text = model.Data.ToShortDateString();
                //Funcoes.VerificarMensagem(model.Mensagem);

                base.Novo();

                _clienteEspecificacao = new ClienteEspecificacaoViewModel();
                VincularDados();
                Tela.LimparTela(tbPrincipal);
                txtCodigo.txtValor.Text = ProximoItem().ToString("0000");
                UsrUsuario.txtId.Clear();
                UsrUsuario.txtCodigo.txtValor.Clear();
                UsrUsuario.txtNome.Clear();
                txtData.txtData.Focus();
                _Id = 0;
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }
        public override void Salvar()
        {
            try
            {
                if (Funcoes.StrToInt(txtCodigo.txtValor.Text) == 0)
                {
                    throw new Exception("Informe o Item");
                }

                if (Funcoes.DataEmBranco(txtData.txtData.Text))
                {
                    throw new Exception("Informe a Data");
                }

                if (Funcoes.StrToInt(UsrUsuario.txtId.Text) == 0)
                {
                    throw new Exception("Informe o Usuário");
                }

                if (string.IsNullOrEmpty(txtDescricao.Text))
                {
                    throw new Exception("Informe a Descrição");
                }

                if (_idCliente == 0)
                {
                    throw new Exception("Informe a Id do Cliente");
                }

                _clienteEspecificacaoApp        = new ClienteEspecificacaoApp();
                _clienteEspecificacao.Id        = _Id;
                _clienteEspecificacao.ClienteId = _idCliente;
                _clienteEspecificacao.Item      = Funcoes.StrToInt(txtCodigo.txtValor.Text);
                _clienteEspecificacao.UsuarioId = Funcoes.StrToInt(UsrUsuario.txtId.Text);
                _clienteEspecificacao.Data      = Funcoes.StrToDate(txtData.txtData.Text);

                var model = _clienteEspecificacaoApp.Salvar(_clienteEspecificacao);

                //Funcoes.VerificarMensagem(model.Mensagem);

                if (_Id > 0)
                {
                    var temp = _listaConsulta.First(x => x.Id == _Id);
                    _listaConsulta.Remove(temp);
                }
                ;

                _listaConsulta.Add(model);

                dgvDados.DataSource = _clienteEspecificacaoApp.Filtrar(_idCliente);

                //dgvDados.DataSource = _listaConsulta.Where(x => x.Id == model.Id).ToArray();

                base.Salvar();
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }
        public override void Editar()
        {
            try
            {
                _clienteEspecificacaoApp = new ClienteEspecificacaoApp();
                _clienteEspecificacao    = _clienteEspecificacaoApp.ObterPorId(Grade.RetornarId(ref dgvDados, "Id"));

                base.Editar();

                Tela.LimparTela(tbPrincipal);

                VincularDados();
                txtCodigo.txtValor.Text = _clienteEspecificacao.Item.ToString("0000");
                txtData.txtData.Text    = _clienteEspecificacao.Data.ToString();

                UsrUsuario.txtId.Text = _clienteEspecificacao.UsuarioId.ToString();
                UsrUsuario.txtCodigo.txtValor.Text = _clienteEspecificacao.CodUsuario.ToString("0000");
                UsrUsuario.txtNome.Text            = _clienteEspecificacao.NomeUsuario;

                txtNome.Focus();
                _Id = _clienteEspecificacao.Id;
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }
        private void FiltrarDados(int idCliente)
        {
            string sCampo = Grade.BuscarCampo(ref dgvDados, cbCampos.Text);

            _clienteEspecificacaoApp = new ClienteEspecificacaoApp();
            string ativo = cboAtivo.Text;

            _listaConsulta      = _clienteEspecificacaoApp.Filtrar(idCliente).ToList();
            dgvDados.DataSource = _listaConsulta;
        }
        public override void Excluir()
        {
            base.Excluir();
            if (Funcoes.Confirmar("Confirmar Exclusão?"))
            {
                try
                {
                    _clienteEspecificacaoApp = new ClienteEspecificacaoApp();
                    int id    = Grade.RetornarId(ref dgvDados, "Id");
                    var model = _clienteEspecificacaoApp.Excluir(id, Funcoes.IdUsuario);
                    //Funcoes.VerificarMensagem(model.Mensagem);

                    _listaConsulta.Remove(_listaConsulta.First(x => x.Id == id));
                    dgvDados.DataSource = _listaConsulta.ToArray();
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message);
                }
            }
        }