private void CarregaTelaEdit(Tratamento tratamento)
 {
     txtNome.Text = tratamento.Nome;
     txtValor.Text = tratamento.Valor.ToString();
     cboEspecialidade.SelectedValue = tratamento.IdEspecialidade;
 }
        private void btnSalvar_Click(object sender, EventArgs e)
        {
            try
            {

                var rep = new Fiap.Persistencia.Hospital.DAO.Repositorio<Tratamento>();
                var tratamento = new Tratamento();
                if (gdvTratamento.SelectedRows.Count > 0)
                {
                    var id = int.Parse(gdvTratamento.SelectedRows[0].Cells[1].Value.ToString());
                    tratamento = rep.Buscar(id);
                }
                if (tratamento == null)
                    tratamento = new Tratamento();

                if (txtNome.IsEmpty())
                {
                    MessageBox.Show("Por favor digite um nome", "Cadastro Tratamento", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                    txtNome.Focus();
                    return;
                }
                else
                    tratamento.Nome = txtNome.Text;

                if (txtValor.IsEmpty())
                {
                    MessageBox.Show("Por favor digite um Valor", "Cadastro Tratamento", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                    txtValor.Focus();
                    return;
                }
                else
                    tratamento.Valor = Convert.ToDecimal(txtValor.Text);

                if (cboEspecialidade.SelectedValue != "" && cboEspecialidade.SelectedValue != null)
                {
                    tratamento.IdEspecialidade = Convert.ToInt32(cboEspecialidade.SelectedValue);
                    //tratamento.Especializacao = new Especializacao()
                    //{
                    //    IdEspecializacao = Convert.ToInt32(cboEspecialidade.SelectedValue),
                    //    Nome = cboEspecialidade.Text
                    //};
                }
                else
                {
                    MessageBox.Show("Por favor selecione um tipo de especialidade.", "Cadastro Tratamento", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                    cboEspecialidade.Focus();
                    return;
                }

                //novo tratamento
                if (tratamento.IdTratamento==0)
                {
                    tratamento.DatInc = DateTime.Now;
                    rep.Adicionar(tratamento);
                }

                rep.Salvar();

                MessageBox.Show(string.Format("Tratamento  {0} adicionado com sucesso", tratamento.Nome));

                gdvTratamento.DataSource = rep.Listar(x=> x.dataExclusao==null)
                                              .Take(10)
                                              .OrderByDescending(x => x.DatInc)
                                              .Select(x => new
                                              {
                                                  Especialização = x.Especializacao.Nome,
                                                  x.IdTratamento,
                                                  x.Nome,
                                                  x.Valor
                                              })
                                              .ToList();

                gdvTratamento.ClearSelection();

                var txts = this.groupBox1.GetTodosControles(typeof(TextBox));

                foreach (var item in txts)
                {
                    item.Text = "";
                    item.Enabled = true;
                }
            }
            catch (Exception)
            {
                MessageBox.Show("Erro ao Salvar", "Cadastro Tratamento", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }