/// <summary> /// Parâmetros para efetuar a exclusão lógica. /// </summary> protected override void ParamDeletar(QueryStoredProcedure qs, ORC_Conteudo entity) { Param = qs.NewParameter(); Param.DbType = DbType.Int32; Param.ParameterName = "@obj_id"; Param.Size = 4; Param.Value = entity.obj_id; qs.Parameters.Add(Param); Param = qs.NewParameter(); Param.DbType = DbType.Int32; Param.ParameterName = "@ctd_id"; Param.Size = 4; Param.Value = entity.ctd_id; qs.Parameters.Add(Param); Param = qs.NewParameter(); Param.DbType = DbType.Byte; Param.ParameterName = "@situacao"; Param.Size = 1; Param.Value = 3; qs.Parameters.Add(Param); Param = qs.NewParameter(); Param.DbType = DbType.DateTime; Param.ParameterName = "@dataAlteracao"; Param.Size = 8; Param.Value = DateTime.Now; qs.Parameters.Add(Param); }
/// <summary> /// Salva os registros de habilidades para o conteúdo. /// </summary> /// <param name="entConteudo">Entidade conteúdo</param> /// <param name="list">Lista de habilidades para salvar</param> /// <param name="banco">Transação com banco - obrigatório</param> internal static void SalvarHabilidadesConteudo(ORC_Conteudo entConteudo, List <ORC_Habilidades> list, TalkDBTransaction banco) { foreach (ORC_Habilidades entity in list) { entity.obj_id = entConteudo.obj_id; entity.ctd_id = entConteudo.ctd_id; entity.IsNew = entity.hbl_id <= 0; if (!string.IsNullOrEmpty(entity.hbl_descricao)) { if (!entity.Validate()) { throw new ValidationException(GestaoEscolarUtilBO.ErrosValidacao(entity)); } // Verifica se já existe uma habilidade cadastrada com a mesma descrição, no mesmo objetivo e conteúdo. if (VerificaHabilidadePorNome_Objetivo_Conteudo(entity.obj_id, entity.ctd_id, entity.hbl_id, entity.hbl_descricao)) { throw new ValidationException("Já existe uma habilidade cadastrada com a descrição " + entity.hbl_descricao + " no mesmo conteúdo."); } Save(entity, banco); } else { if (entity.hbl_id > 0) { Delete(entity, banco); } } } }
protected void btnExcluirConteudo_Click(object sender, EventArgs e) { try { // Pegar os ID's dos itens que serão excluídos. ImageButton btn = (ImageButton)sender; string obj_id = btn.CommandArgument.Split(';')[0]; string ctd_id = btn.CommandArgument.Split(';')[1]; ORC_Conteudo entity = new ORC_Conteudo { obj_id = Convert.ToInt32(string.IsNullOrEmpty(obj_id) ? "0" : obj_id) , ctd_id = Convert.ToInt32(string.IsNullOrEmpty(ctd_id) ? "0" : ctd_id) }; if (entity.obj_id > 0 && entity.ctd_id > 0) { ORC_ConteudoBO.Delete(entity); ApplicationWEB._GravaLogSistema(LOG_SistemaTipo.Delete, "obj_id: " + entity.obj_id + "; ctd_id: " + entity.ctd_id); VS_EditItem = -1; // Recarregar repeater. CarregarObjetivosConteudos(); lblMensagem.Text = UtilBO.GetErroMessage("Conteúdo do ojetivo da orientação curricular excluído com sucesso.", UtilBO.TipoMensagem.Sucesso); } else { lblMensagem.Text = UtilBO.GetErroMessage("Não foi possível excluir o conteúdo do objetivo da orientação curricular.", UtilBO.TipoMensagem.Alerta); } } catch (ValidationException ex) { lblMensagem.Text = UtilBO.GetErroMessage(ex.Message, UtilBO.TipoMensagem.Alerta); } catch (Exception ex) { ApplicationWEB._GravaErro(ex); lblMensagem.Text = UtilBO.GetErroMessage("Erro ao tentar excluir o conteúdo do objetivo da orientação curricular.", UtilBO.TipoMensagem.Erro); } }
/// <summary> /// Salva os períodos relacionados ao conteúdo. /// </summary> /// <param name="entConteudo">Entidae do conteúdo</param> /// <param name="list">Lista de tpc_id</param> /// <param name="banco">Transação - obrigatório</param> internal static void SalvarPeriodos(ORC_Conteudo entConteudo, List <int> list, TalkDBTransaction banco) { List <ORC_ConteudoTipoPeriodoCalendario> listaPeriodosBanco = SelecionaListaPor_Conteudo(entConteudo.obj_id, entConteudo.ctd_id, banco); // Inclui os períodos para o conteúdo do objetivo foreach (int tpc_id in list) { ORC_ConteudoTipoPeriodoCalendario entity = new ORC_ConteudoTipoPeriodoCalendario { obj_id = entConteudo.obj_id, ctd_id = entConteudo.ctd_id, tpc_id = tpc_id }; // Só inclui o tipo de período do calendário para o conteúdo do objetivo se ele não existir no banco if (!listaPeriodosBanco.Exists(p => p.obj_id == entity.obj_id && p.ctd_id == entity.ctd_id && p.tpc_id == entity.tpc_id)) { if (!entity.Validate()) { throw new ValidationException(GestaoEscolarUtilBO.ErrosValidacao(entity)); } Save(entity, banco); } } // Deleta os períodos para o conteúdo do objetivo que não estão na lista do usuário foreach (ORC_ConteudoTipoPeriodoCalendario entityPeriodo in listaPeriodosBanco) { if (!list.Exists(p => p.Equals(entityPeriodo.tpc_id))) { Delete(entityPeriodo, banco); } } }
/// <summary> /// Retorna a estrutura de cadastro de conteúdo, com os dados do item de repeater passado por /// parâmetro. /// </summary> /// <param name="item">Item</param> /// <returns></returns> private ORC_Conteudo_Cadastro RetornaConteudoCadastro(RepeaterItem item) { Literal litCtd_id = (Literal)item.FindControl("litCtd_id"); Literal litObj_id = (Literal)item.FindControl("litObj_id"); int ctd_id = 0; int obj_id = 0; // se não vier da ação de copiar orientação curricular, guarda os ids para alterar caso seja uma alteração. if (Cal_id_Copia <= 0) { obj_id = Convert.ToInt32(litObj_id.Text); ctd_id = Convert.ToInt32(litCtd_id.Text); } ORC_Conteudo entConteudo = new ORC_Conteudo { obj_id = obj_id , ctd_id = ctd_id }; List <ORC_ConteudoItem> listaItens = RetornaItensConteudo(item, obj_id, ctd_id); List <ORC_Habilidades> listaHabilidades = RetornaHabilidades(item, obj_id, ctd_id); List <int> listaPeriodos = RetornaPeriodos(item); return(new ORC_Conteudo_Cadastro { entConteudo = entConteudo , listItensConteudo = listaItens , listHabilidades = listaHabilidades , listPeriodos = listaPeriodos }); }
protected void btnAdicionarConteudo_Click(object sender, EventArgs e) { try { // Utilizado na validação de item do conteúdo e de habilidade Button btn = (Button)sender; RepeaterItem rptItemConteudoValidacao = (RepeaterItem)btn.NamingContainer; Repeater rptItemValidacao = (Repeater)rptItemConteudoValidacao.FindControl("rptConteudoItem"); foreach (RepeaterItem item in rptItemValidacao.Items) { TextBox txtItem = (TextBox)item.FindControl("txtDescricao"); if (string.IsNullOrEmpty(txtItem.Text)) { throw new ValidationException("Item do conteúdo é obrigatório."); } } Repeater rptHabilidadeValidacao = (Repeater)rptItemConteudoValidacao.FindControl("rptHabilidades"); foreach (RepeaterItem item in rptHabilidadeValidacao.Items) { TextBox txtHabilidade = (TextBox)item.FindControl("txtDescricao"); if (string.IsNullOrEmpty(txtHabilidade.Text)) { throw new ValidationException("Habilidade é obrigatório."); } } // Adicionar item de conteúdo na lista de dados. Repeater rptContainer = RetornaRepeaterBotao(sender); List <ORC_Conteudo_Cadastro> lista = new List <ORC_Conteudo_Cadastro>(); // Se o botão está dentro do repeater de objetivos - não tem item no repeater de conteúdo. if (!rptContainer.ID.Equals(rptObjetivos.ID)) { foreach (RepeaterItem item in rptContainer.Items) { lista.Add(RetornaConteudoCadastro(item)); } } int obj_id = -1; if (lista.Count > 0) { ORC_Conteudo ent = lista.FindLast(p => p.entConteudo != null).entConteudo; if (ent != null) { obj_id = ent.obj_id; } } // Verifica a qtde de conteúdos cadastrados var x2 = from ORC_Conteudo_Cadastro cad in lista select cad.entConteudo; // Gera um novo id para o conteúdo (utilizado apenas na tela) int ctd_id = x2.Count() + 1; ORC_Conteudo_Cadastro novoItem = CriaNovoConteudo(obj_id, ctd_id); lista.Add(novoItem); listaConteudoCadastro = lista; var x = from ORC_Conteudo_Cadastro cad in lista select cad.entConteudo; // Seta flag que indica se o item do Objetivo é o que está sendo editado. editandoItemObjetivo = true; Repeater rptConteudos = rptContainer; if (rptContainer.ID.Equals(rptObjetivos.ID)) { RepeaterItem itemObjetivo = RetornaRepeaterItemBotao(sender); rptConteudos = (Repeater)itemObjetivo.FindControl("rptConteudos"); } // Dá o dataBind no repeater, e seta a propriedade Visible no botão de adicionar conteúdo. rptConteudos.DataSource = x; AtualizaRepeaterConteudos(rptConteudos, (RepeaterItem)rptConteudos.NamingContainer); RepeaterItem rptItem = (RepeaterItem)rptConteudos.NamingContainer; // Seta flag que indica se o item do Objetivo é o que está sendo editado. editandoItemObjetivo = true; // Atualiza o rowSpan da coluna de objetivos. HtmlTableCell tdObj = (HtmlTableCell)rptItem.FindControl("tdObj"); tdObj.RowSpan = x.Count() + 1; listaConteudoCadastro = null; } catch (ValidationException ex) { lblMensagem.Text = UtilBO.GetErroMessage(ex.Message, UtilBO.TipoMensagem.Alerta); } catch (Exception ex) { ApplicationWEB._GravaErro(ex); lblMensagem.Text = UtilBO.GetErroMessage("Erro ao tentar adicionar item de conteúdo.", UtilBO.TipoMensagem.Erro); } }
/// <summary> /// Método alterado para que o delete não faça exclusão física e sim lógica (update). /// </summary> /// <param name="entity"> Entidade ORC_ConteudoItem</param> /// <returns>true = sucesso | false = fracasso</returns> public override bool Delete(ORC_Conteudo entity) { __STP_DELETE = "NEW_ORC_Conteudo_Update_Situacao"; return(base.Delete(entity)); }