protected void btnSalvar_Click(object sender, EventArgs e)
        {
            switch (ValidFields())
            {
                case "Numero Conta Em Branco":
                    MessageBox.Show("Situação Associada. Campo Número da Conta é de preenchimento obrigatório.", MessageBox.MessageType.Info);
                    break;
                case "Descricao em Branco":
                    MessageBox.Show("Campo Descrição é de preenchimento obrigatório.", MessageBox.MessageType.Info);
                    break;
                case "Data em Branco":
                    MessageBox.Show("Campo Data é de preenchimento obrigatório.", MessageBox.MessageType.Info);
                    break;
                case "OK":

                    using (TransactionScope scope = new TransactionScope())
                    {
                        try
                        {

                            int idProspect = -1;
                            if (Session["idProspectNew"] != null)
                            {
                                idProspect = Convert.ToInt32(Session["idProspectNew"].ToString());
                            }
                            else if (Session["idProspectHist"] != null)
                            {
                                idProspect = Convert.ToInt32(Session["idProspectHist"].ToString());
                            }

                            ProspectControl prospectData = new ProspectControl();
                            ProspectFields prospectObj = new ProspectFields();

                            prospectObj = prospectData.GetItem(idProspect);
                            NomeProspect = prospectObj.Nome;

                            ContatoControl contatoDal = new ContatoControl();
                            ContatoFields contatoObj = new ContatoFields();

                            contatoObj.DataCadastro = DateTime.Now;
                            contatoObj.DataContato = Convert.ToDateTime(txtDate.Text + " " + DateTime.Now.TimeOfDay);
                            contatoObj.Descricao = DescricaoContato;
                            contatoObj.Situacao = Situacao;
                            contatoObj.Tipo = Tipo;
                            contatoObj.fkProspect = prospectObj.idProspect;
                            int id = -1;

                            if (Convert.ToInt32(hfEditaContato.Value) > 0)
                            {
                                contatoObj.idContato = Convert.ToInt32(hfEditaContato.Value);
                                contatoDal.Update(contatoObj);
                                id = contatoObj.idContato;
                            }
                            else
                            {
                                string situacaoContatoProspect = prospectObj.SituacaoProspect;

                                if (situacaoContatoProspect != "Associada")
                                    id = contatoDal.Add(ref contatoObj);

                                else
                                {
                                    MessageBox.Show("Usuário com situação de Associada, favor verificar.", MessageBox.MessageType.Info);
                                    return;
                                }
                            }

                            if (contatoObj.Tipo == "Associada")
                            {
                                AssociacaoControl associacaoDal = new AssociacaoControl();
                                AssociacaoFields associacaoObj = new AssociacaoFields();

                                associacaoObj.DataCadastro = contatoObj.DataCadastro;
                                associacaoObj.DataAssociacao = contatoObj.DataContato;
                                associacaoObj.NumeroConta = txtNumConta.Text;
                                associacaoObj.fkContato = id;

                                if (Convert.ToInt32(hfEditaContato.Value) > 0)
                                {
                                    AssociacaoFields aux = associacaoDal.FindByfkContato(Convert.ToInt32(hfEditaContato.Value));
                                    if (aux != null)
                                    {
                                        associacaoObj.idAssociacao = aux.idAssociacao;
                                        associacaoDal.Update(associacaoObj);
                                        prospectObj.SituacaoProspect = Situacao;
                                        prospectData.Update(prospectObj);

                                    }
                                    else
                                    {
                                        associacaoDal.Add(ref associacaoObj);
                                        prospectObj.SituacaoProspect = Situacao;
                                        prospectData.Update(prospectObj);
                                    }

                                }
                                else
                                {
                                    string situacaoProspect = string.Empty;

                                    associacaoDal.Add(ref associacaoObj);
                                    prospectObj.SituacaoProspect = Situacao;
                                    prospectData.Update(prospectObj);

                                }
                            }

                            if (Session["idProspectNew"] != null)
                            {
                                CleanFields();
                                MessageBox.Show("Contato adicionado com sucesso.", MessageBox.MessageType.Success);
                            }
                            else if (Session["idProspectHist"] != null)
                            {
                                CleanFields();
                                MessageBox.Show("Contato alterado com sucesso.", MessageBox.MessageType.Success);
                            }

                        }
                        catch (Exception ex)
                        {

                            MessageBox.Show(ex.Message, MessageBox.MessageType.Error);
                        }

                        scope.Complete();
                        break;
                    }

            }
        }
        protected void btnExcluir_Click(object sender, EventArgs e)
        {
            try
            {
                ContatoControl contatoDal = new ContatoControl();
                ContatoFields contatoObj = new ContatoFields();
                ImageButton imgButton;
                imgButton = (ImageButton)sender; //converter objeto para checkbox
                GridViewRow row = (GridViewRow)imgButton.Parent.Parent; // pegar a linha pai desta checkbox
                int idContato = Convert.ToInt32(gvPrincipal.DataKeys[row.RowIndex]["idContato"].ToString());//pegar o código da datakey da linha
                
                AssociacaoControl associacaoDal = new AssociacaoControl();
                AssociacaoFields associacaoObj = associacaoDal.FindByfkContato(contatoObj.idContato);

                if (associacaoObj != null)
                    associacaoDal.Delete(associacaoObj.idAssociacao);

                contatoDal.Delete(Convert.ToInt32(idContato));

                MessageBox.Show("Contato apagado com sucesso.", MessageBox.MessageType.Success);
                DoSearch();
            }
            catch (Exception ex)
            {

                MessageBox.Show(ex.Message, MessageBox.MessageType.Error);
            }

        }
        private void BindContactFields(int id)
        {
            ContatoControl pc = new ContatoControl();
            ContatoFields pf = pc.GetItem(id);

            if (pf != null)
            {
                txtDescricaoContato.Text = pf.Descricao;
                txtDate.Text = pf.DataContato.ToString("dd/MM/yyyy");

                txtNomeProspect.Enabled = false;

                this.ddlTipo.ClearSelection();
                if (this.ddlTipo.Items.FindByValue(pf.Tipo) != null)
                    this.ddlTipo.Items.FindByValue(pf.Tipo).Selected = true;

                this.ddlSituacao.ClearSelection();
                if (this.ddlSituacao.Items.FindByValue(pf.Situacao) != null)
                    this.ddlSituacao.Items.FindByValue(pf.Situacao).Selected = true;

                AssociacaoControl ac = new AssociacaoControl();
                AssociacaoFields af = ac.FindByfkContato(pf.idContato);
                if (af != null)
                {
                    txtNumConta.Text = af.NumeroConta;
                    txtNumConta.Enabled = true;
                }

            }
        }