/// <summary> /// Insere e altera uma entidade /// </summary> private void _Salvar() { try { List <END_Endereco> ltEntityEndereco = new List <END_Endereco>(); List <SYS_UnidadeAdministrativaEndereco> ltEntityUAEndereco = new List <SYS_UnidadeAdministrativaEndereco>(); string numero; string complemento; string msg; decimal latitude; decimal longitude; DataTable dt; bool cadastraEndereco = UCEnderecos1.RetornaEnderecoCadastrado(out dt, out msg); if (ValidaCampos(dt)) { string msgErro = string.Empty; if (String.IsNullOrEmpty(_lblMessage.Text.Trim()) && !UCGridContato1.SalvaConteudoGrid(out msgErro)) { UCGridContato1._MensagemErro.Visible = false; _lblMessage.Text = msgErro; txtSelectedTab.Value = "2"; return; } // Cadastra Unidade Administrativa SYS_UnidadeAdministrativa entityUnidadeAdministrativa = new SYS_UnidadeAdministrativa { ent_id = _VS_ent_id , uad_id = _VS_uad_id , tua_id = new Guid(UCComboTipoUnidadeAdministrativa1._Combo.SelectedValue) , uad_nome = _txtNome.Text , uad_sigla = _txtSigla.Text , uad_codigo = _txtCodigo.Text , uad_codigoInep = _txtCodigoInep.Text , uad_idSuperior = UCUASuperior.VsUadId , uad_codigoIntegracao = _txtCodigoIntegracao.Text , uad_situacao = _chkBloqueado.Checked ? Convert.ToByte(2) : Convert.ToByte(1) , IsNew = (_VS_uad_id != Guid.Empty) ? false : true }; for (int i = 0; i < dt.Rows.Count; i++) { if (!cadastraEndereco) { throw new ValidationException(msg); } DataRow dr = dt.Rows[i]; string end_id = dr["end_id"].ToString(); Guid uae_id = string.IsNullOrEmpty(dr["endRel_id"].ToString()) ? Guid.NewGuid() : new Guid(dr["endRel_id"].ToString()); int zona = 0; if (!string.IsNullOrEmpty(dr["end_zona"].ToString())) { zona = Convert.ToInt16(dr["end_zona"].ToString()); } bool excluido = Convert.ToBoolean(dr["excluido"]); if ((String.IsNullOrEmpty(end_id)) || (end_id.Equals(Guid.Empty.ToString()))) { ltEntityEndereco.Add(new END_Endereco { end_id = new Guid(dr["id"].ToString()), IsNew = true, cid_nome = dr["cid_nome"].ToString(), end_logradouro = dr["end_logradouro"].ToString(), end_distrito = dr["end_distrito"].ToString(), end_zona = (zona != 0) ? Convert.ToByte(dr["end_zona"].ToString()) : Convert.ToByte(0), end_bairro = dr["end_bairro"].ToString(), cid_id = new Guid(dr["cid_id"].ToString()), end_cep = dr["end_cep"].ToString(), end_situacao = Convert.ToByte(1) }); } else { END_Endereco entityEndereco = new END_Endereco(); entityEndereco.end_id = new Guid(dr["end_id"].ToString()); entityEndereco.IsNew = false; END_EnderecoBO.GetEntity(entityEndereco); entityEndereco.cid_id = new Guid(dr["cid_id"].ToString()); entityEndereco.cid_nome = dr["cid_nome"].ToString(); entityEndereco.end_logradouro = dr["end_logradouro"].ToString(); entityEndereco.end_distrito = dr["end_distrito"].ToString(); entityEndereco.end_zona = (zona != 0) ? Convert.ToByte(dr["end_zona"].ToString()) : Convert.ToByte(0); entityEndereco.end_bairro = dr["end_bairro"].ToString(); entityEndereco.end_cep = dr["end_cep"].ToString(); entityEndereco.end_situacao = (excluido) ? Convert.ToByte(3) : Convert.ToByte(1); ltEntityEndereco.Add(entityEndereco); } numero = dr["numero"].ToString(); complemento = dr["complemento"].ToString(); latitude = string.IsNullOrEmpty(dr["latitude"].ToString()) ? 0 : decimal.Parse(dr["latitude"].ToString()); longitude = string.IsNullOrEmpty(dr["longitude"].ToString()) ? 0 : decimal.Parse(dr["longitude"].ToString()); bool excluirEndereco = String.IsNullOrEmpty(dr["end_cep"].ToString()) && !_VS_IsNew_end_id; if (!String.IsNullOrEmpty(ltEntityEndereco[i].end_cep)) { ltEntityUAEndereco.Add(new SYS_UnidadeAdministrativaEndereco() { ent_id = _VS_ent_id, uad_id = _VS_uad_id, end_id = ltEntityEndereco[i].end_id, uae_numero = numero, uae_complemento = complemento, uae_situacao = (excluido) ? Convert.ToByte(3) : Convert.ToByte(1), IsNew = (string.IsNullOrEmpty(dr["novo"].ToString()) ? false : Convert.ToBoolean(dr["novo"].ToString())), uae_latitude = latitude, uae_longitude = longitude, uae_id = uae_id, uae_enderecoPrincipal = (string.IsNullOrEmpty(dr["enderecoprincipal"].ToString()) ? false : Convert.ToBoolean(dr["enderecoprincipal"].ToString())), }); } } if (SYS_UnidadeAdministrativaBO.Save(entityUnidadeAdministrativa, ltEntityEndereco, ltEntityUAEndereco, UCGridContato1._VS_contatos, _VS_uad_idSuperiorAntigo, _VS_end_idAntigo, null)) { if (_VS_uad_id == Guid.Empty) { ApplicationWEB._GravaLogSistema(LOG_SistemaTipo.Insert, "ent_id: " + entityUnidadeAdministrativa.ent_id + "; uad_id: " + entityUnidadeAdministrativa.uad_id); __SessionWEB.PostMessages = UtilBO.GetErroMessage(String.Format("Unidade administrativa incluída com sucesso."), UtilBO.TipoMensagem.Sucesso); } else { ApplicationWEB._GravaLogSistema(LOG_SistemaTipo.Update, "ent_id: " + entityUnidadeAdministrativa.ent_id + "; uad_id: " + entityUnidadeAdministrativa.uad_id); __SessionWEB.PostMessages = UtilBO.GetErroMessage(String.Format("Unidade administrativa alterada com sucesso."), UtilBO.TipoMensagem.Sucesso); } Response.Redirect(__SessionWEB._AreaAtual._Diretorio + "UA/Busca.aspx", false); } else { _lblMessage.Text = UtilBO.GetErroMessage("Erro ao tentar salvar a unidade administrativa.", UtilBO.TipoMensagem.Erro); } } } catch (ValidationException ex) { _lblMessage.Text = UtilBO.GetErroMessage(ex.Message, UtilBO.TipoMensagem.Alerta); SetFocus(ValidationSummary1); } catch (ArgumentException ex) { _lblMessage.Text = UtilBO.GetErroMessage(ex.Message, UtilBO.TipoMensagem.Alerta); SetFocus(ValidationSummary1); } catch (DuplicateNameException ex) { _lblMessage.Text = UtilBO.GetErroMessage(ex.Message, UtilBO.TipoMensagem.Alerta); SetFocus(ValidationSummary1); } catch (Exception ex) { ApplicationWEB._GravaErro(ex); _lblMessage.Text = UtilBO.GetErroMessage("Erro ao tentar salvar a unidade administrativa.", UtilBO.TipoMensagem.Erro); SetFocus(ValidationSummary1); } }