protected void btnSalvar_Click(object sender, EventArgs e)
        {
            try
            {
                _manterCertificadoTemplate = new ManterCertificadoTemplate();


                if (Request["Id"] == null ||
                    Request["C"] != null)
                {
                    _certificadoTemplate = ObterObjetoCertificadoTemplate(true);
                    _manterCertificadoTemplate.IncluirCertificadoTemplate(_certificadoTemplate);
                }
                else
                {
                    _certificadoTemplate = this.ObterObjetoCertificadoTemplate(false);
                    _manterCertificadoTemplate.AlterarCertificadoTemplate(_certificadoTemplate);
                }

                Session.Remove("CertificadoTemplateEdit");
            }
            catch (AcademicoException ex)
            {
                WebFormHelper.ExibirMensagem(enumTipoMensagem.Erro, ex.Message);
                return;
            }

            WebFormHelper.ExibirMensagem(enumTipoMensagem.Sucesso, "Dados Gravados com Sucesso !", "ListarCertificadoTemplate.aspx");
        }
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!Page.IsPostBack)
            {
                PreencherCombos();

                if (Request["Id"] != null)
                {
                    int idCertificadoTemplate = int.Parse(Request["Id"]);
                    _certificadoTemplate = _manterCertificadoTemplate.ObterCertificadoTemplatePorID(idCertificadoTemplate);
                    PreencherCampos(_certificadoTemplate);

                    DesabilitaSeVisualizar();

                    if (Request["C"] != null)
                    {
                        btnVisualizar.Visible = false;
                    }
                }
                else
                {
                    var usuario = _manterUsuario.ObterUsuarioLogado();
                    ucCategorias1.PreencherCategorias(false, null, usuario, false, false, true);
                    btnVisualizar.Visible = false;
                }
            }
        }
        protected void btnPesquisar_Click(object sender, EventArgs e)
        {
            if (Page.IsValid)
            {
                try
                {
                    classes.CertificadoTemplate certificadoTemplate = ObterObjetoCertificadoTemplate();
                    manterCertificadoTemplate = new ManterCertificadoTemplate();
                    IList <classes.CertificadoTemplate> ListaCertificadoTemplate = manterCertificadoTemplate.ObterCertificadoTemplatePorFiltro(certificadoTemplate);
                    WebFormHelper.PreencherGrid(ListaCertificadoTemplate, this.dgvCertificadoTemplate);

                    if (ListaCertificadoTemplate != null && ListaCertificadoTemplate.Count > 0)
                    {
                        WebFormHelper.PreencherGrid(ListaCertificadoTemplate, this.dgvCertificadoTemplate);
                        pnlTemplateCertificado.Visible = true;
                    }
                    else
                    {
                        pnlTemplateCertificado.Visible = false;
                        WebFormHelper.ExibirMensagem(enumTipoMensagem.Alerta, "Nenhuma Informação Encontrada");
                    }
                }
                catch (AcademicoException ex)
                {
                    WebFormHelper.ExibirMensagem(enumTipoMensagem.Erro, ex.Message);
                }
            }
        }
        private classes.CertificadoTemplate ObterObjetoCertificadoTemplate()
        {
            classes.CertificadoTemplate trilha = new classes.CertificadoTemplate();

            if (!string.IsNullOrWhiteSpace(this.txtNome.Text))
            {
                trilha.Nome = this.txtNome.Text.Trim();
            }

            return(trilha);
        }
        private void PreencherCampos(classes.CertificadoTemplate certificadoTemplate)
        {
            if (certificadoTemplate != null)
            {
                //Nome
                if (!string.IsNullOrWhiteSpace(certificadoTemplate.Nome))
                {
                    txtNome.Text = certificadoTemplate.Nome;
                }

                //Texto do Certificado
                if (!string.IsNullOrWhiteSpace(certificadoTemplate.TextoDoCertificado))
                {
                    txtTexto.Text = certificadoTemplate.TextoDoCertificado;
                }

                if (!string.IsNullOrWhiteSpace(certificadoTemplate.TextoCertificado2))
                {
                    txtTextoCertificado2.Text = certificadoTemplate.TextoCertificado2;
                }

                //Imagem
                if (!string.IsNullOrEmpty(certificadoTemplate.Imagem))
                {
                    imgImagem1.Src = certificadoTemplate.Imagem;
                }
                else
                {
                    imgImagem1.Visible = false;
                }

                if (!string.IsNullOrEmpty(certificadoTemplate.Imagem2))
                {
                    imgImagem2.Src = certificadoTemplate.Imagem2;
                }
                else
                {
                    imgImagem2.Visible = false;
                }

                var usuario = _manterUsuario.ObterUsuarioLogado();

                ucCategorias1.PreencherCategorias(false,
                                                  certificadoTemplate.ListaCategoriaConteudo.Any()
                        ? certificadoTemplate.ListaCategoriaConteudo.Select(x => x.ID).ToList()
                        : null, usuario, false, false, true);

                ViewState.Add("idcertificadoTemplate", certificadoTemplate.ID);

                if (certificadoTemplate.Professor)
                {
                    rblInProfessor.SelectedValue = "Professor";
                }
                else
                {
                    rblInProfessor.SelectedValue = "Aluno";
                }

                rblAtivo.SelectedValue = certificadoTemplate.Ativo ? "S" : "N";

                // Certificado de Trilhas
                chkCertificadoTrilhas.Checked = certificadoTemplate.CertificadoTrilhas == true;
                divVerso.Visible = certificadoTemplate.CertificadoTrilhas != true;
            }
            else
            {
                var usuario = _manterUsuario.ObterUsuarioLogado();
                ucCategorias1.PreencherCategorias(false, null, usuario);
            }
        }
        private classes.CertificadoTemplate ObterObjetoCertificadoTemplate(bool criaNovoObjeto)
        {
            if (Request["Id"] != null && !criaNovoObjeto)
            {
                _certificadoTemplate = new ManterCertificadoTemplate().ObterCertificadoTemplatePorID((int.Parse(Request["Id"])));
            }
            else
            {
                _certificadoTemplate = new classes.CertificadoTemplate();

                var usuarioLogado = _manterUsuario.ObterUsuarioLogado();

                _certificadoTemplate.UF = new ManterUf().ObterUfPorID(usuarioLogado.UF.ID);
            }

            if (Request["Id"] != null)
            {
                var tempCertificadoTemplate = new ManterCertificadoTemplate().ObterCertificadoTemplatePorID((int.Parse(Request["Id"])));

                if (!string.IsNullOrEmpty(tempCertificadoTemplate.Imagem))
                {
                    _certificadoTemplate.Imagem = tempCertificadoTemplate.Imagem;
                }

                if (!string.IsNullOrEmpty(tempCertificadoTemplate.Imagem2))
                {
                    _certificadoTemplate.Imagem2 = tempCertificadoTemplate.Imagem2;
                }
            }

            ValidarTemplate();

            //Nome
            _certificadoTemplate.Nome = txtNome.Text;

            //Texto
            _certificadoTemplate.TextoDoCertificado = txtTexto.Text;


            //Obtém a Imagem salva
            if (chkbExcluir1.Checked)
            {
                _certificadoTemplate.Imagem = string.Empty;
            }
            if (fupldArquivoEnvio1 != null && fupldArquivoEnvio1.PostedFile != null && fupldArquivoEnvio1.PostedFile.ContentLength > 0)
            {
                try
                {
                    var    imagem = fupldArquivoEnvio1.PostedFile.InputStream;
                    string imagemConvertidaEmBase64String = CommonHelper.ObterBase64String(imagem);
                    string informacoesDoArquivoParaBase64 = CommonHelper.GerarInformacoesDoArquivoParaBase64(fupldArquivoEnvio1);
                    _certificadoTemplate.Imagem = string.Concat(informacoesDoArquivoParaBase64, ",", imagemConvertidaEmBase64String);
                }
                catch (AcademicoException ex)
                {
                    throw ex;
                }
                catch
                {
                    //Todo: -> Logar erro
                    throw new AcademicoException("Ocorreu um Erro ao Salvar o arquivo");
                }
            }

            //Obtém a segunda Imagem
            if (chkbExcluir2.Checked)
            {
                _certificadoTemplate.Imagem2 = string.Empty;
            }
            if (fupldArquivoEnvio2 != null && fupldArquivoEnvio2.PostedFile != null && fupldArquivoEnvio2.PostedFile.ContentLength > 0)
            {
                try
                {
                    var    imagem = fupldArquivoEnvio2.PostedFile.InputStream;
                    string imagemConvertidaEmBase64String = CommonHelper.ObterBase64String(imagem);
                    string informacoesDoArquivoParaBase64 = CommonHelper.GerarInformacoesDoArquivoParaBase64(fupldArquivoEnvio2);
                    _certificadoTemplate.Imagem2 = string.Concat(informacoesDoArquivoParaBase64, ",", imagemConvertidaEmBase64String);
                }
                catch (AcademicoException ex)
                {
                    throw ex;
                }
                catch
                {
                    //Todo: -> Logar erro
                    throw new AcademicoException("Ocorreu um Erro ao Salvar o arquivo");
                }
            }

            //Certificado de trilhas
            _certificadoTemplate.CertificadoTrilhas = chkCertificadoTrilhas.Checked;

            //Texto do Certificado
            _certificadoTemplate.TextoCertificado2 = txtTextoCertificado2.Text;

            var manterCategoriaConteudo = new ManterCategoriaConteudo();

            //Categorias
            _certificadoTemplate.ListaCategoriaConteudo = ucCategorias1.IdsCategoriasMarcadas.Select(id => manterCategoriaConteudo.ObterCategoriaConteudoPorID(id)).ToList();

            if (rblInProfessor.SelectedValue == "Professor")
            {
                _certificadoTemplate.Professor = true;
            }
            else
            {
                _certificadoTemplate.Professor = false;
            }

            if ((rblAtivo.SelectedItem != null && !string.IsNullOrWhiteSpace(rblAtivo.SelectedItem.Value)))
            {
                _certificadoTemplate.Ativo = rblAtivo.SelectedValue == "S" ? true : false;
            }


            return(_certificadoTemplate);
        }