/// <summary> /// Método que grava no banco a inclusao ou alteração /// </summary> /// <param name="entity">entidade a ser salva/alterada</param> /// <param name="lista">lista de series que estao ligadas ao tipo de resultado</param> /// <returns></returns> public static bool Save(ACA_TipoResultado entity, IList <ACA_TipoResultadoCurriculoPeriodo> lista) { ACA_TipoResultadoDAO dao = new ACA_TipoResultadoDAO(); dao._Banco.Open(IsolationLevel.ReadCommitted); try { if (Save(entity, dao._Banco)) { DataTable dtCP = ACA_TipoResultadoCurriculoPeriodoBO.SelectBy_tpr_id(entity.tpr_id, dao._Banco); // Busca e exclui os relacionamentos existentes for (int i = 0; i < dtCP.Rows.Count; i++) { ACA_TipoResultadoCurriculoPeriodo entityCP = new ACA_TipoResultadoCurriculoPeriodo { cur_id = Convert.ToInt32(dtCP.Rows[i]["cur_id"]), crr_id = Convert.ToInt32(dtCP.Rows[i]["crr_id"]), crp_id = Convert.ToInt32(dtCP.Rows[i]["crp_id"]), tpr_id = Convert.ToInt32(dtCP.Rows[i]["tpr_id"]) }; ACA_TipoResultadoCurriculoPeriodoBO.Delete(entityCP, dao._Banco); GestaoEscolarUtilBO.LimpaCache(String.Format("{0}_{1}_{2}_{3}", ACA_TipoResultadoCurriculoPeriodoBO.Cache_TipoResultado, entityCP.cur_id, entityCP.crr_id, entityCP.crp_id)); } // Valida se o mesmo curriculoperiodo ja esta cadastrado em outro tipo de resultado foreach (ACA_TipoResultadoCurriculoPeriodo item in lista) { List <Struct_TipoResultado> listaTiposResultados = ACA_TipoResultadoCurriculoPeriodoBO.SelecionaTipoResultado(item.cur_id, item.crr_id, item.crp_id, (EnumTipoLancamento)entity.tpr_tipoLancamento, entity.tds_id); if (listaTiposResultados.Count > 0) { Struct_TipoResultado tipoResultado = listaTiposResultados.FirstOrDefault(p => p.tpr_resultado == entity.tpr_resultado && p.tpr_id != entity.tpr_id); if (tipoResultado.tpr_id > 0) { throw new ValidationException("A série " + tipoResultado.crp_descricao + " já esta cadastrada em outro tipo de resultado."); } } item.tpr_id = entity.tpr_id; ACA_TipoResultadoCurriculoPeriodoBO.Save(item, dao._Banco); GestaoEscolarUtilBO.LimpaCache(String.Format("{0}_{1}_{2}_{3}", ACA_TipoResultadoCurriculoPeriodoBO.Cache_TipoResultado, item.cur_id, item.crr_id, item.crp_id)); } } } catch (Exception err) { dao._Banco.Close(err); throw err; } finally { if (dao._Banco.ConnectionIsOpen) { dao._Banco.Close(); } } return(true); }
/// <summary> /// Método para salvar um informativo. /// </summary> private void Salvar() { try { ACA_TipoResultado entTpResultado = new ACA_TipoResultado(); entTpResultado.tpr_id = VS_tpr_id; entTpResultado.tpr_resultado = Convert.ToInt16(ddlConceitoFinal.SelectedValue); entTpResultado.tpr_nomenclatura = txtNomenclatura.Text; entTpResultado.tpr_tipoLancamento = Convert.ToInt16(ddlTipoLancamento.SelectedValue); entTpResultado.tds_id = ddlTipoDisciplina.Visible ? Convert.ToInt32(ddlTipoDisciplina.SelectedValue) : -1; entTpResultado.IsNew = VS_tpr_id < 0; IList <ACA_TipoResultadoCurriculoPeriodo> series = new List <ACA_TipoResultadoCurriculoPeriodo>(); List <ListItem> selecionados = cblPeriodos.Items.Cast <ListItem>() .Where(li => li.Selected) .ToList(); if (selecionados.Count > 0) { foreach (ListItem item in selecionados) { ACA_TipoResultadoCurriculoPeriodo it = new ACA_TipoResultadoCurriculoPeriodo { cur_id = UCCCursoCurriculo.Valor[0], crr_id = UCCCursoCurriculo.Valor[1], crp_id = Convert.ToInt32(item.Value) }; series.Add(it); } } else { throw new ValidationException("Pelo menos uma série deve ser selecionada."); } if (ACA_TipoResultadoBO.Save(entTpResultado, series)) { ApplicationWEB._GravaLogSistema(VS_tpr_id > 0 ? LOG_SistemaTipo.Update : LOG_SistemaTipo.Insert, "tpr_id: " + entTpResultado.tpr_id); __SessionWEB.PostMessages = UtilBO.GetErroMessage("Tipo de resultado " + (VS_tpr_id > 0 ? "alterado" : "incluído") + " com sucesso.", UtilBO.TipoMensagem.Sucesso); Response.Redirect("~/Configuracao/ParametroResultado/Busca.aspx", false); HttpContext.Current.ApplicationInstance.CompleteRequest(); } } catch (ValidationException e) { lblMessage.Text = UtilBO.GetErroMessage(e.Message, UtilBO.TipoMensagem.Alerta); } catch (ArgumentException e) { lblMessage.Text = UtilBO.GetErroMessage(e.Message, UtilBO.TipoMensagem.Alerta); } catch (Exception ex) { ApplicationWEB._GravaErro(ex); lblMessage.Text = UtilBO.GetErroMessage("Erro ao tentar salvar tipo de resultado.", UtilBO.TipoMensagem.Erro); } }