/// <summary> /// Insere ou altera o relatório /// </summary> private void Salvar() { try { REL_GraficoAtendimentoTipo tipoGrafico; Enum.TryParse(ddlTipoGrafico.SelectedValue, out tipoGrafico); if (REL_GraficoAtendimentoBO.GetBy_titulo(txtTitulo.Text).AsEnumerable().Any(g => Convert.ToInt32(g["gra_id"]) != VS_gra_id)) { throw new ValidationException("Já existe um gráfico de atendimento cadastrado com este título."); } REL_GraficoAtendimento gra = new REL_GraficoAtendimento { gra_id = VS_gra_id, rea_id = UCComboRelatorioAtendimento.Valor, gra_titulo = txtTitulo.Text, gra_eixo = Convert.ToByte(ddlEixoAgrupamento.SelectedValue), gra_tipo = Convert.ToByte(tipoGrafico), gra_dataAlteracao = DateTime.Now, IsNew = VS_gra_id <= 0 }; if (gra.IsNew) { gra.gra_dataCriacao = DateTime.Now; } if (VS_lstFiltrosFixos.Count == 0 && VS_listQuestionarioConteudoResposta.Count == 0) { throw new ValidationException("Adicione pelo menos um filtro fixo ou personalizado."); } if (REL_GraficoAtendimentoBO.Salvar(gra, VS_lstFiltrosFixos, VS_listQuestionarioConteudoResposta)) { string message = ""; if (VS_gra_id <= 0) { ApplicationWEB._GravaLogSistema(LOG_SistemaTipo.Insert, "gra_id: " + gra.gra_id); message = UtilBO.GetErroMessage("Gráfico cadastrado com sucesso.", UtilBO.TipoMensagem.Sucesso); } else { ApplicationWEB._GravaLogSistema(LOG_SistemaTipo.Update, "gra_id: " + gra.gra_id); message = UtilBO.GetErroMessage("Gráfico alterado com sucesso.", UtilBO.TipoMensagem.Sucesso); } if (ParametroPermanecerTela) { ScriptManager.RegisterClientScriptBlock(Page, Page.GetType(), "ScrollToTop", "setTimeout('window.scrollTo(0,0);', 0);", true); lblMessage.Text = message; VS_gra_id = gra.gra_id; _LoadFromEntity(VS_gra_id); } else { __SessionWEB.PostMessages = message; Response.Redirect(__SessionWEB._AreaAtual._Diretorio + "Configuracao/RelatorioAtendimento/Busca.aspx", false); HttpContext.Current.ApplicationInstance.CompleteRequest(); } } else { ScriptManager.RegisterClientScriptBlock(Page, Page.GetType(), "ScrollToTop", "setTimeout('window.scrollTo(0,0);', 0);", true); lblMessage.Text = UtilBO.GetErroMessage(GetGlobalResourceObject("Configuracao", "RelatorioAtendimento.Cadastro.ErroSalvarRelatorio").ToString(), UtilBO.TipoMensagem.Erro); } } catch (ValidationException ex) { ScriptManager.RegisterClientScriptBlock(Page, Page.GetType(), "ScrollToTop", "setTimeout('window.scrollTo(0,0);', 0);", true); lblMessage.Text = UtilBO.GetErroMessage(ex.Message, UtilBO.TipoMensagem.Alerta); } catch (DuplicateNameException ex) { ScriptManager.RegisterClientScriptBlock(Page, Page.GetType(), "ScrollToTop", "setTimeout('window.scrollTo(0,0);', 0);", true); lblMessage.Text = UtilBO.GetErroMessage(ex.Message, UtilBO.TipoMensagem.Alerta); } catch (ArgumentException ex) { ScriptManager.RegisterClientScriptBlock(Page, Page.GetType(), "ScrollToTop", "setTimeout('window.scrollTo(0,0);', 0);", true); lblMessage.Text = UtilBO.GetErroMessage(ex.Message, UtilBO.TipoMensagem.Alerta); } catch (Exception ex) { ApplicationWEB._GravaErro(ex); ScriptManager.RegisterClientScriptBlock(Page, Page.GetType(), "ScrollToTop", "setTimeout('window.scrollTo(0,0);', 0);", true); lblMessage.Text = UtilBO.GetErroMessage(GetGlobalResourceObject("Configuracao", "RelatorioAtendimento.Cadastro.ErroSalvarRelatorio").ToString(), UtilBO.TipoMensagem.Erro); } }