コード例 #1
0
		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;
		}
コード例 #2
0
        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());
        }
コード例 #3
0
		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");
			}
		}