private HelperTag ObterObjetoHelperTag(ManterHelperTag manterHelperTag) { if (string.IsNullOrWhiteSpace(txtDescricao.Text)) { throw new AcademicoException("Campo \"Descrição\" é obrigatório."); } if (txtDescricao.Text.Length > 4000) { throw new AcademicoException("Campo \"Descrição\" só pode ter no máximo 4000 caracteres.."); } var chave = hdnHelperTagChave.Value; var paginaId = int.Parse(hdnHelperTagPaginaId.Value); var helper = chave != "0" && !string.IsNullOrWhiteSpace(chave) && paginaId != 0 ? manterHelperTag.ObterPorChavePagina(chave, paginaId) : new HelperTag { Pagina = ObterPaginaAtual() }; helper.Descricao = txtDescricao.Text; return(helper); }
protected void btnEditarHelperTag_OnClick(object sender, EventArgs e) { var master = ObterMasterPagePrincipal(); // Atribuir os valores da descrição e do ID do helper no Modal lá da Masterpage. if (master != null) { var modal = master.FindControl("ModalEdicaoHelperTag"); if (modal != null) { var backDrop = master.FindControl("pnlbackdrop"); if (backDrop != null) { backDrop.Visible = true; } modal.Visible = true; var paginaAtual = ObterPaginaAtual(); if (paginaAtual != null) { var tag = new ManterHelperTag().ObterPorChavePagina(Chave, paginaAtual.ID); // Caso não exista cria um registro de tag vazia no banco isso evita o cadastro manual de novas tags if (tag == null && !String.IsNullOrEmpty(Chave) && paginaAtual.ID != 0) { tag = new HelperTag(); tag.Pagina = paginaAtual; tag.Chave = Chave; new ManterHelperTag().Salvar(tag); } if (tag != null) { ((HiddenField)modal.FindControl("hdnHelperTagChave")).Value = tag.Chave; ((HiddenField)modal.FindControl("hdnHelperTagPaginaId")).Value = tag.Pagina.ID.ToString(); ((CKEditorControl)modal.FindControl("txtDescricao")).Text = tag.Descricao; } } } } }
protected void Page_LoadComplete(object sender, EventArgs e) { if (!string.IsNullOrWhiteSpace(Chave)) { HelperTag.Visible = true; btnEditarHelperTag.Visible = true; // Se certifica que as tags estão na sessão para evitar consultar ao banco. if (Session["HelperTags"] == null) { Session["HelperTags"] = new ManterHelperTag().ObterTodos().ToList(); } // Salva se o usuário logado é admin para evitar consultar para cada Tag. var usuarioLogadoIsAdmin = Session["UsuarioLogadoIsAdmin"] != null ? (bool)Session["UsuarioLogadoIsAdmin"] : new ManterUsuario().ObterUsuarioLogado().IsAdministrador(); // Exibir edição somente para Administradores. if (!usuarioLogadoIsAdmin) { btnEditarHelperTag.Visible = false; } var tagAtual = ObterTagAtual(); // Obtém o texto de ajuda ou informa caso não exista. var descricao = tagAtual == null || string.IsNullOrWhiteSpace(tagAtual.Descricao) ? "Texto de ajuda não informado" : tagAtual.Descricao; HelperTag.Attributes["data-content"] = descricao; // Caso a descrição tenha mais de 100 caracteres, adicionar uma classe no popover para deixá-lo mais largo. if (descricao.Length > 100) { CustomClass = "popover-lg"; } } }
/// <summary> /// Buscar a tag atual de acordo com o campo Chave. Em vez de buscar do banco, busca da sessão para evitar sobrecarga. /// </summary> /// <returns></returns> private HelperTag ObterTagAtual() { List <HelperTag> tags; // Obtém a tag atual da sessão, caso exista. Se não existir, obtém do banco e atualiza a sessão para o próximo uso. if (Session["HelperTags"] != null) { tags = Session["HelperTags"] as List <HelperTag>; } else { tags = new ManterHelperTag().ObterTodos().ToList(); Session["HelperTags"] = tags; } var paginaAtual = ObterPaginaAtual(); return(tags != null && paginaAtual != null ? tags.FirstOrDefault(x => x.Chave == Chave && x.Pagina.ID == paginaAtual.ID) : null); }
protected void btnSalvarHelper_OnClick(object sender, EventArgs e) { try { var manterHelperTag = new ManterHelperTag(); var helper = ObterObjetoHelperTag(manterHelperTag); manterHelperTag.Salvar(helper); // Atualizar as tags da sessão. Session["HelperTags"] = new ManterHelperTag().ObterTodos().ToList(); WebFormHelper.ExibirMensagem(enumTipoMensagem.Sucesso, "Texto de ajuda salvo com sucesso."); btnFecharHelper_OnClick(null, null); } catch (AcademicoException ex) { WebFormHelper.ExibirMensagem(enumTipoMensagem.Erro, ex.Message); } }