/// <summary> /// Insere e altera uma pessoa /// </summary> private void _Associar() { try { string msgErro; bool mensagemEmBranco = String.IsNullOrEmpty(_lblMessage.Text.Trim()); if (mensagemEmBranco && !UCGridContato1.SalvaConteudoGrid(out msgErro)) { UCGridContato1._MensagemErro.Visible = false; _lblMessage.Text = msgErro; txtSelectedTab.Value = "2"; return; } if (mensagemEmBranco && !UCGridCertidaoCivil1.AtualizaViewState(out msgErro)) { _lblMessage.Text = msgErro; txtSelectedTab.Value = "3"; return; } if (!UCGridDocumento1.ValidaConteudoGrid(out msgErro)) { UCGridDocumento1._MensagemErro.Visible = false; _lblMessage.Text = UtilBO.GetErroMessage(msgErro, UtilBO.TipoMensagem.Alerta); txtSelectedTab.Value = "3"; return; } //Adiciona valores na entidade de pessoa PES_Pessoa entityPessoa = new PES_Pessoa { pes_id = UCCadastroPessoa1._VS_pes_id , pes_nome = UCCadastroPessoa1._txtNome.Text , pes_nome_abreviado = UCCadastroPessoa1._txtNomeAbreviado.Text , pai_idNacionalidade = new Guid(UCCadastroPessoa1._ComboNacionalidade.SelectedValue) , pes_naturalizado = UCCadastroPessoa1._chkNaturalizado.Checked , cid_idNaturalidade = UCCadastroPessoa1._VS_cid_id , pes_dataNascimento = (String.IsNullOrEmpty(UCCadastroPessoa1._txtDataNasc.Text.Trim())? new DateTime() : Convert.ToDateTime(UCCadastroPessoa1._txtDataNasc.Text.Trim())) , pes_racaCor = UCCadastroPessoa1._ComboRacaCor.SelectedValue == "-1" ? Convert.ToByte(null) : Convert.ToByte(UCCadastroPessoa1._ComboRacaCor.SelectedValue) , pes_sexo = UCCadastroPessoa1._ComboSexo.SelectedValue == "-1" ? Convert.ToByte(null) : Convert.ToByte(UCCadastroPessoa1._ComboSexo.SelectedValue) , pes_idFiliacaoPai = UCCadastroPessoa1._VS_pes_idFiliacaoPai , pes_idFiliacaoMae = UCCadastroPessoa1._VS_pes_idFiliacaoMae , tes_id = new Guid(UCCadastroPessoa1._ComboEscolaridade.SelectedValue) , pes_estadoCivil = UCCadastroPessoa1._ComboEstadoCivil.SelectedValue == "-1" ? Convert.ToByte(null) : Convert.ToByte(UCCadastroPessoa1._ComboEstadoCivil.SelectedValue) , pes_situacao = 1 , IsNew = (UCCadastroPessoa1._VS_pes_id != Guid.Empty) ? false : true }; PES_PessoaDeficiencia entityPessoaDeficiencia = new PES_PessoaDeficiencia { pes_id = _VS_pes_id , tde_id = new Guid(UCCadastroPessoa1._ComboTipoDeficiencia.SelectedValue) , IsNew = true }; CFG_Arquivo entArquivo = null; //armazema a imagem na entidade de pessoa if (!string.IsNullOrEmpty(UCCadastroPessoa1._iptFoto.PostedFile.FileName)) { string tam = SYS_ParametroBO.ParametroValor(SYS_ParametroBO.eChave.TAMANHO_MAX_FOTO_PESSOA); if (!string.IsNullOrEmpty(tam)) { if (UCCadastroPessoa1._iptFoto.PostedFile.ContentLength > Convert.ToInt32(tam) * 1000) { throw new ArgumentException("Foto é maior que o tamanho máximo permitido."); } if (UCCadastroPessoa1._iptFoto.PostedFile.FileName.Substring(UCCadastroPessoa1._iptFoto.PostedFile.FileName.Length - 3, 3).ToUpper() != "JPG") { throw new ArgumentException("Foto tem que estar no formato \".jpg\"."); } } entArquivo = CFG_ArquivoBO.CriarEntidadeArquivo(UCCadastroPessoa1._iptFoto.PostedFile); if (_VS_arq_idAntigo > 0) { // Se já existia foto e vai ser alterada, muda só o conteúdo. entArquivo.arq_id = _VS_arq_idAntigo; entArquivo.IsNew = false; } } if (_VS_arq_idAntigo > 0) { entityPessoa.arq_idFoto = _VS_arq_idAntigo; } XmlDocument xDoc = new XmlDocument(); XmlNode xElem = xDoc.CreateNode(XmlNodeType.Element, "Coluna", string.Empty); XmlNode xNodeCoor = xDoc.CreateNode(XmlNodeType.Element, "ColunaValorAntigo", string.Empty); XmlNode xNode; for (int i = 0; i < _VS_AssociarPessoas.Rows.Count; i++) { if ((_VS_AssociarPessoas.Rows[i]["pes_id"].ToString()) != _VS_pes_id.ToString()) { xNodeCoor = xDoc.CreateNode(XmlNodeType.Element, "ColunaValorAntigo", ""); xNode = xDoc.CreateNode(XmlNodeType.Element, "valor", ""); xNode.InnerText = _VS_AssociarPessoas.Rows[i]["pes_id"].ToString(); xNodeCoor.AppendChild(xNode); xElem.AppendChild(xNodeCoor); } } xDoc.AppendChild(xElem); if (PES_PessoaBO.AssociarPessoas(entityPessoa, entityPessoaDeficiencia, UCEnderecos1._VS_enderecos, UCGridContato1._VS_contatos, UCGridDocumento1.RetornaDocumentoSave(), UCGridCertidaoCivil1._VS_certidoes, _VS_pai_idAntigo, _VS_cid_idAntigo, _VS_pes_idPaiAntigo, _VS_pes_idMaeAntigo, _VS_tes_idAntigo, _VS_tde_idAntigo, xDoc)) { ApplicationWEB._GravaLogSistema(LOG_SistemaTipo.Update, "pes_id: " + entityPessoa.pes_id); __SessionWEB.PostMessages = UtilBO.GetErroMessage(String.Format("Pessoas associadas com sucesso."), UtilBO.TipoMensagem.Sucesso); Response.Redirect(__SessionWEB._AreaAtual._Diretorio + "ManutencaoPessoa/Busca.aspx", false); } else { _lblMessage.Text = UtilBO.GetErroMessage("Erro ao tentar associar as pessoas.", UtilBO.TipoMensagem.Erro); } } catch (CoreLibrary.Validation.Exceptions.ValidationException ex) { _lblMessage.Text = UtilBO.GetErroMessage(ex.Message, UtilBO.TipoMensagem.Alerta); } catch (ArgumentException ex) { _lblMessage.Text = UtilBO.GetErroMessage(ex.Message, UtilBO.TipoMensagem.Alerta); } catch (DuplicateNameException ex) { _lblMessage.Text = UtilBO.GetErroMessage(ex.Message, UtilBO.TipoMensagem.Alerta); } catch (Exception ex) { ApplicationWEB._GravaErro(ex); _lblMessage.Text = UtilBO.GetErroMessage("Erro ao tentar associar as pessoas.", UtilBO.TipoMensagem.Erro); } finally { _updGridPessoas.Update(); } }