private bool ExcluirRegistros()
    {
        Banco.Conexao conexao  = new Banco.Conexao();
        bool          bRetorno = true;

        try
        {
            Treinamentos.TreinamentoDB treinamentoDB = new TreinamentoDB();
            conexao.AbreConexao();
            conexao.IniciaTransacao();
            Treinamentos.Treinamento treinamento = new Treinamentos.Treinamento();
            TreinamentoAlvo          alvo        = new TreinamentoAlvo();
            TreinamentoAlvoDB        dB          = new TreinamentoAlvoDB();
            alvo.TreinamentoID = treinamento.TreinamentoID;


            foreach (string lista in grdRegistros.CodigosSelecionados)
            {
                treinamento.TreinamentoID = int.Parse(lista);
                alvo.TreinamentoID        = treinamento.TreinamentoID;
                bRetorno = dB.ExcluiPeloTreinamento(conexao, alvo.TreinamentoID);
                bRetorno = treinamentoDB.Exclui(conexao, treinamento);
                bRetorno = Avaliacao.Anexo.ExcluirDocumento(alvo.TreinamentoID.ToString());

                if (!bRetorno)
                {
                    break;
                }
            }
            if (bRetorno)
            {
                conexao.TerminaTransacao();
            }
            else
            {
                conexao.DesfazTransacao();
            }
        }
        catch (Exception)
        {
            msgAlert.Texto = "Erro ao excluir";
            msgAlert.Exibir();
            conexao.FechaConexao();
        }
        return(bRetorno);
    }
    public bool AdicionaCargoModalParaDB(int iTreinamentoID)
    {
        Banco.Conexao            conexao = new Banco.Conexao();
        Treinamentos.Treinamento trei    = new Treinamentos.Treinamento();

        TreinamentoAlvoDB dB       = new TreinamentoAlvoDB();
        bool bRetorno              = true;
        List <TreinamentoAlvo> aux = dB.Carrega(conexao, "#TreinamentoID = " + iTreinamentoID.ToString());

        foreach (TreinamentoAlvo item in aux)
        {
            bRetorno = dB.Inclui(conexao, item);
            if (!bRetorno)
            {
                break;
            }
        }
        return(bRetorno);
    }
    //método usado para preencher campos da modal com os valores do grid após que vem carregado conforme o retorno da pesquisa.
    protected void PreencheCamposModal(string sId)
    {
        Banco.Conexao conexao = new Banco.Conexao();
        conexao.AbreConexao();
        conexao.IniciaTransacao();
        TreinamentoDB db = new TreinamentoDB();

        Treinamentos.Treinamento trei = new Treinamentos.Treinamento();

        trei.TreinamentoID = int.Parse(sId);
        if (db.Carrega(conexao, ref trei))
        {
            hfId.Value                 = sId;
            txtCodigo.Texto            = trei.Codigo;
            txtTitulo.Texto            = trei.Titulo;
            txtLinkVideo.Texto         = trei.LinkVideo;
            txtPrazo.Texto             = trei.Prazo.ToString();
            txtCargaHoraria.Texto      = trei.CargaHoraria;
            txtDataInicial.SData       = trei.DataInicial.ToString("yyyyMMdd");
            txtDataFinal.SData         = trei.DataFinal.ToString("yyyyMMdd");
            psOrientador.Texto         = trei.Orientador;
            psInstrutor.Texto          = trei.Instrutor;
            dpFormulario.SelectedValue = trei.FormularioID.ToString();
            List <TreinamentoAlvo> lista = new TreinamentoAlvoDB().CarregaPeloTreinamento(trei.TreinamentoID);
            DataTable       oDt          = CriaDataTable();
            Rotinas.Rotinas oUteis       = new Rotinas.Rotinas();

            foreach (TreinamentoAlvo item in lista)
            {
                oDt.Rows.Add(item.Cargo, item.CargoTitulo, item.Lotacao, item.LotacaoTitulo, item.Estab, item.EstabTitulo);
            }
            grdModal.CarregaDados(oDt);
            ViewState["listaTreinamentos"] = oDt;
        }
        else
        {
            //Aviso de que  não encontrou o objeto no banco de dados com este id.
            msgAlert.Texto = "Aviso erro ao consultar base de dados.";
            msgAlert.Exibir();
        }
        conexao.FechaConexao();
    }
    protected void AdicionaTreinamentoModalBD()
    {
        bool bEdita     = false;
        bool bResultado = false;

        if (!string.IsNullOrWhiteSpace(hfId.Value))
        {
            bEdita = true;
        }

        Banco.Conexao conexao = new Banco.Conexao();
        conexao.AbreConexao();
        TreinamentoDB     dB       = new TreinamentoDB();
        TreinamentoAlvoDB tcargoDb = new TreinamentoAlvoDB();

        Treinamentos.Treinamento trei = new Treinamentos.Treinamento();

        if (bEdita)//se bEdita True ele altera as informações editadas
        {
            trei.TreinamentoID = int.Parse(hfId.Value);
        }

        trei.Codigo       = txtCodigo.Texto;
        trei.Titulo       = txtTitulo.Texto;
        trei.DataInicial  = Funcoes.Funcoes.TextoemData(txtDataInicial.SData);
        trei.DataFinal    = Funcoes.Funcoes.TextoemData(txtDataFinal.SData);
        trei.LinkVideo    = txtLinkVideo.Texto;
        trei.Orientador   = psOrientador.Texto;
        trei.Instrutor    = psInstrutor.Texto;
        trei.Prazo        = int.Parse(txtPrazo.Texto);
        trei.CargaHoraria = txtCargaHoraria.Texto;
        trei.FormularioID = int.Parse(dpFormulario.SelectedValue);
        string caminhoArquivo = hdCaminho.Value.ToString();


        if (!string.IsNullOrEmpty(hdCaminho.Value.ToString()))
        {
            FileUpload upload = new FileUpload();

            upload.SaveAs(Constantes.Ambiente.CaminhoSite + "temp\\" + caminhoArquivo);

            Avaliacao.Anexo.AdicionaDocumento(trei.TreinamentoID.ToString(), Server.MapPath("../temp/" + caminhoArquivo));
        }

        conexao.IniciaTransacao();
        if (bEdita)
        {
            bResultado = dB.Altera(conexao, trei);

            bResultado = tcargoDb.ExcluiPeloTreinamento(conexao, trei.TreinamentoID);
        }
        else//se bEdita for false ele começa o processo para gravar novas informações no DB.
        {
            bResultado = dB.Inclui(conexao, trei);
        }

        if (bResultado)
        {
            DataTable oDt = ViewState["listaTreinamentos"] as DataTable;
            foreach (DataRow row in oDt.Rows)
            {
                TreinamentoAlvo tc = new TreinamentoAlvo();
                tc.TreinamentoID = trei.TreinamentoID;
                tc.Cargo         = row["CARGO"].ToString();
                tc.Lotacao       = row["LOTACAO"].ToString();
                tc.Estab         = row["ESTAB"].ToString();
                bResultado       = tcargoDb.Inclui(conexao, tc);
                if (!bResultado)
                {
                    break;
                }
            }
            if (!string.IsNullOrEmpty(hdCaminho.Value.ToString()))
            {
                FileUpload upload = new FileUpload();



                upload.SaveAs(Constantes.Ambiente.CaminhoSite + "temp\\" + caminhoArquivo);

                Avaliacao.Anexo.AdicionaDocumento(trei.TreinamentoID.ToString(), Server.MapPath("../temp/" + caminhoArquivo));


                //lblChecklist.Text = "Arquivo salvo com sucesso." + ArquivoUpLoad;
            }
        }

        //adicionar condicional se bResultado for true grava se bResultado for false mostra mensagem de erro entre cabeçario e campo código, e mantém campos preenchidos.
        if (bResultado)
        {
            conexao.TerminaTransacao();
            MsgConfirma.Texto = "Registro salvo com sucesso.";
            MsgConfirma.Exibir();
            CarregaGrid();
            HabilitaDiv(false);
            LimpaCamposModal();
        }
        else
        {
            conexao.DesfazTransacao();
            msgModalConfirmacaoErro.Texto = "Não foi possivel salvar registro.";
            msgModalConfirmacaoErro.Exibir();
            CarregaGrid();
            HabilitaDiv(false);
            LimpaCamposModal();
        }

        conexao.FechaConexao();
    }