private void ExcluirLinhaGrdModal()
    {
        DataTable       oDt       = ViewState["listaTreinamentos"] as DataTable;
        TreinamentoAlvo treiCargo = new TreinamentoAlvo();

        if (oDt != null)
        {
            foreach (string lista in grdModal.CodigosSelecionados)
            {
                string[] aux = lista.Split(';');
                DataRow  row = Funcoes.Funcoes.DataTablePegaColunaComValor(oDt, aux[0], "CARGO", aux[1], "LOTACAO", aux[2], "ESTAB");
                oDt.Rows.Remove(row);
            }
        }
        grdModal.CarregaDados(oDt);
        ViewState["listaTreinamentos"] = oDt;
    }
    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);
    }
    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();
    }