protected override string GetDependenciesReport(DataRow[] rows) { string report = null; foreach (DataRow dependentRow in rows) { if (report == null) { report = ""; } report += " " + TipoNivelRelacionado.GetTipoNivelRelacionadoDaPrimeiraRelacaoEncontrada(((GISADataset.SFRDUFDescricaoFisicaRow)dependentRow).FRDBaseRow.NivelRow).Designacao + ": " + Nivel.GetDesignacao(((GISADataset.SFRDUFDescricaoFisicaRow)dependentRow).FRDBaseRow.NivelRow) + Environment.NewLine; } if (report != null) { report = "Remover este material fará com que todas as suas referências passem a \"" + ((GISADataset.TipoSuporteRow)(GisaDataSetHelper.GetInstance().TipoSuporte.Select("ID = 1")[0])).Designacao + "\"" + Environment.NewLine + "Foram encontrados os seguintes níveis associados a " + "este material:" + Environment.NewLine + Environment.NewLine + report; } return report; }
private string GetFRDBaseAsRTF(GISADataset.NivelRow NivelRow) { GISADataset.FRDBaseRow FRDBaseRow = null; GisaDataSetHelper.ManageDatasetConstraints(false); GisaDataSetHelper.HoldOpen ho = new GisaDataSetHelper.HoldOpen(GisaDataSetHelper.GetConnection()); try { PesquisaRule.Current.LoadFRDBaseUFData(GisaDataSetHelper.GetInstance(), NivelRow.ID, ho.Connection); } catch (Exception ex) { Trace.WriteLine(ex); throw ex; } finally { ho.Dispose(); } GisaDataSetHelper.ManageDatasetConstraints(true); StringBuilder Result = new StringBuilder(); if (GisaDataSetHelper.GetInstance().FRDBase.Select("IDNivel=" + NivelRow.ID.ToString()).Length > 0) { FRDBaseRow = (GISADataset.FRDBaseRow)(GisaDataSetHelper.GetInstance().FRDBase.Select("IDNivel=" + NivelRow.ID.ToString())[0]); // --Identificação-- Result.Append("\\fs36\\b{}Identificação\\b0{}\\fs24\\sb196\\sa48\\par{}\\sb0\\sa0{}"); // Entidade Detentora if (FRDBaseRow.NivelRow.GetRelacaoHierarquicaRowsByNivelRelacaoHierarquica().Length == 1) { Result.Append(GetConditionalText("\\i{}Entidade detentora: \\i0{}", FRDBaseRow.NivelRow.GetRelacaoHierarquicaRowsByNivelRelacaoHierarquica()[0].NivelRowByNivelRelacaoHierarquicaUpper.GetNivelDesignadoRows()[0].Designacao, "\\par{}")); } // Codigo de Referência Result.Append(GetConditionalText("\\i{}Número de recenseamento: \\i0{}", FRDBaseRow.NivelRow.Codigo, "\\par{}")); // Cota if (FRDBaseRow.GetSFRDUFCotaRows().Length == 1) { if (!(FRDBaseRow.GetSFRDUFCotaRows()[0].IsCotaNull())) { Result.Append(GetConditionalText("\\i{}Cota: \\i0{}", FRDBaseRow.GetSFRDUFCotaRows()[0].Cota, "\\par{}")); } else { Result.Append(GetConditionalText("\\i{}Cota: \\i0{}", "", "\\par{}")); } } // Título Result.Append("\\i{}" + TipoNivelRelacionado.GetTipoNivelRelacionadoDaPrimeiraRelacaoEncontrada(FRDBaseRow.NivelRow).Designacao + ": \\i0{}" + Nivel.GetDesignacao(FRDBaseRow.NivelRow) + "\\par{}"); // Datas if (FRDBaseRow.GetSFRDDatasProducaoRows().Length == 1) { Result.Append("\\i{}Datas: \\i0{}" + GUIHelper.GUIHelper.FormatDateInterval(FRDBaseRow.GetSFRDDatasProducaoRows()[0]) + "\\par{}"); } // Tipo e dimensões if (FRDBaseRow.GetSFRDUFDescricaoFisicaRows().Length == 1) { GISADataset.SFRDUFDescricaoFisicaRow sfrdufRow = null; string tipoMedida = null; sfrdufRow = FRDBaseRow.GetSFRDUFDescricaoFisicaRows()[0]; Result.Append("\\i{}Tipo: \\i0{}" + sfrdufRow.TipoAcondicionamentoRow.Designacao + "\\par{}"); if (sfrdufRow.TipoMedidaRow == null) { tipoMedida = string.Empty; } else { tipoMedida = sfrdufRow.TipoMedidaRow.Designacao; } Result.Append("\\i{}Dimensões: \\i0{}" + string.Format("{0} x {1} x {2} ({3})", GISA.Utils.GUIHelper.getStringifiedDecimal(sfrdufRow["MedidaLargura"]), GISA.Utils.GUIHelper.getStringifiedDecimal(sfrdufRow["MedidaAltura"]), GISA.Utils.GUIHelper.getStringifiedDecimal(sfrdufRow["MedidaProfundidade"]), tipoMedida) + "\\par{}"); } // --ConteudoEstrutura-- string ConteudoEstrutura = ""; if (FRDBaseRow.GetSFRDConteudoEEstruturaRows().Length == 1) { GISADataset.SFRDConteudoEEstruturaRow ceRow = (GISADataset.SFRDConteudoEEstruturaRow)FRDBaseRow.GetSFRDConteudoEEstruturaRows()[0]; if (ceRow.IsConteudoInformacionalNull()) { ConteudoEstrutura = GetConditionalText("\\i{}Conteúdo informacional: \\i0{}\\par{}", "", "\\li128\\par\\li0{}"); } else { ConteudoEstrutura = GetConditionalText("\\i{}Conteúdo informacional: \\i0{}\\par{}", ceRow.ConteudoInformacional, "\\li128\\par\\li0{}"); } } Result.Append(Section("\\fs36\\b{}Conteúdo e estrutura\\b0{}\\fs24\\sb196\\sa48\\par{}\\sb0\\sa0{}", GetConditionalText("\\i{}Tipologia informacional: \\i0{}\\par{}", GetTermosIndexados(FRDBaseRow, TipoNoticiaAut.TipologiaInformacional), ""), ConteudoEstrutura)); // --Documentação associada-- if (FRDBaseRow.GetSFRDDocumentacaoAssociadaRows().Length > 0) { Result.Append(Section("\\fs36\\b{}Documentação associada\\b0{}\\fs24\\sb196\\sa48\\par{}\\sb0\\sa0{}", GetConditionalText("\\i{}Existência e localização de originais: \\i0{}\\par{}", FRDBaseRow.GetSFRDDocumentacaoAssociadaRows()[0].ExistenciaDeOriginais, "\\li128\\par\\li0{}") + GetConditionalText("\\i{}Existência e localização de cópias: \\i0{}\\par{}", FRDBaseRow.GetSFRDDocumentacaoAssociadaRows()[0].ExistenciaDeCopias, "\\li128\\par\\li0{}"))); } // --Indexação-- Result.Append(Section("\\fs36\\b{}Indexação\\b0{}\\fs24\\sb196\\sa48\\par{}\\sb0\\sa0{}", GetConditionalText("\\i{}Conteúdos: \\i0{}\\par{}", GetTermosIndexados(FRDBaseRow, TipoNoticiaAut.Ideografico, TipoNoticiaAut.Onomastico, TipoNoticiaAut.ToponimicoGeografico), ""))); } return(Result.ToString()); }
protected override void AcceptContents(object Value) { GISADataset.ControloAutRow ControloAutRow = (GISADataset.ControloAutRow)Value; if (FRDBase != null) { // Carregar nivel do CA largado IDbConnection conn = GisaDataSetHelper.GetConnection(); try { conn.Open(); DBAbstractDataLayer.DataAccessRules.NivelRule.Current.LoadNivelByControloAut(ControloAutRow.ID, GisaDataSetHelper.GetInstance(), conn); } finally { conn.Close(); } if (IsValidRelacaoHierarquica(ControloAutRow)) { // Apresentar form que permita escolher a data da relação FormRelacaoHierarquica frmRh = new FormRelacaoHierarquica(); // Pode-se obter a primeira relação encontrada para efeitos de determinação // do tipo de nível uma vez que o tipo de nível dos níveis documentais nunca se alterará frmRh.relacaoNvl.TipoNivelRelacionadoRow = TipoNivelRelacionado.GetPrimeiraRelacaoEncontrada(this.FRDBase.NivelRow).TipoNivelRelacionadoRow; frmRh.relacaoNvl.ContextNivelRow = ControloAutRow.GetNivelControloAutRows()[0].NivelRow; if (frmRh.ShowDialog() == DialogResult.Cancel) { return; } if (GisaDataSetHelper.GetInstance().RelacaoHierarquica.Select(string.Format("ID={0} AND IDUpper={1}", this.FRDBase.NivelRow.ID, ControloAutRow.GetNivelControloAutRows()[0].NivelRow.ID), "", DataViewRowState.Deleted).Length > 0) { GisaDataSetHelper.GetInstance().RelacaoHierarquica.Select(string.Format("ID={0} AND IDUpper={1}", this.FRDBase.NivelRow.ID, ControloAutRow.GetNivelControloAutRows()[0].NivelRow.ID), "", DataViewRowState.Deleted)[0].AcceptChanges(); } GISADataset.RelacaoHierarquicaRow rhRow = null; rhRow = GisaDataSetHelper.GetInstance().RelacaoHierarquica.NewRelacaoHierarquicaRow(); TempRelacaoHierarquica = rhRow; rhRow.ID = this.FRDBase.NivelRow.ID; rhRow.IDUpper = ControloAutRow.GetNivelControloAutRows()[0].NivelRow.ID; rhRow.IDTipoNivelRelacionado = TipoNivelRelacionado.GetTipoNivelRelacionadoDaPrimeiraRelacaoEncontrada(this.FRDBase.NivelRow).ID; rhRow.Descricao = frmRh.relacaoNvl.txtDescricao.Text; rhRow.InicioAno = frmRh.relacaoNvl.dtRelacaoInicio.ValueYear; rhRow.InicioMes = frmRh.relacaoNvl.dtRelacaoInicio.ValueMonth; rhRow.InicioDia = frmRh.relacaoNvl.dtRelacaoInicio.ValueDay; rhRow.FimAno = frmRh.relacaoNvl.dtRelacaoFim.ValueYear; rhRow.FimMes = frmRh.relacaoNvl.dtRelacaoFim.ValueMonth; rhRow.FimDia = frmRh.relacaoNvl.dtRelacaoFim.ValueDay; GisaDataSetHelper.GetInstance().RelacaoHierarquica.AddRelacaoHierarquicaRow(rhRow); // no caso de se tratar de uma entidade produtora é necessário validar o código de referência do nivel documental do contexto if (ControloAutRow.IDTipoNoticiaAut == (long)TipoNoticiaAut.EntidadeProdutora) { var argsPC = new PersistencyHelper.EnsureUniqueCodigoNivelPreConcArguments(); argsPC.rhRowID = rhRow.ID; argsPC.rhRowIDUpper = rhRow.IDUpper; var postSaveAction = new PostSaveAction(); PersistencyHelper.UpdatePermissionsPostSaveArguments args = new PersistencyHelper.UpdatePermissionsPostSaveArguments(); postSaveAction.args = args; postSaveAction.postSaveDelegate = delegate(PersistencyHelper.PostSaveArguments postSaveArgs) { if (argsPC.successful) { if (this.parent == null) Debug.Assert(false, "CONTEXTO PARENT DEVE ESTAR DEFINIDO."); if (this.parent.GetType() == typeof(MasterPanelSeries)) { ((MasterPanelSeries)this.parent).CurrentContext.RaiseRegisterModificationEvent(this.FRDBase); PersistencyHelperRule.Current.saveRows(GisaDataSetHelper.GetInstance().FRDBaseDataDeDescricao, GisaDataSetHelper.GetInstance().FRDBaseDataDeDescricao.Cast<GISADataset.FRDBaseDataDeDescricaoRow>().Where(r => r.RowState == DataRowState.Added).ToArray(), postSaveArgs.tran); } } }; var result = PersistencyHelper.save(DelegatesHelper.verificaCodigosRepetidos, argsPC, postSaveAction, true); if (result == PersistencyHelper.SaveResult.successful) { PersistencyHelper.cleanDeletedData(); GisaDataSetHelper.VisitControloAutDicionario(ControloAutRow, DisplayFormaAutorizada); GISA.Search.Updater.updateNivelDocumental(this.FRDBase.NivelRow.ID); } else { if (argsPC.message.Length > 0) MessageBox.Show(argsPC.message, "Adição", MessageBoxButtons.OK, MessageBoxIcon.Warning); } } } else { MessageBox.Show("Não é possível a existência de items repetidos.", "Adição", MessageBoxButtons.OK, MessageBoxIcon.Warning); } } else if (this.ControloAut != null) { Debug.Assert(false, "ORGANIC RELATIONS BETWEEN CAS NOT IMPLEMENTED. SHOULDN'T BE NEEDED"); } }