private void btnNavegar_Click(object sender, EventArgs e) { currentState = currentState == State.filter ? State.navigation : State.filter; this.grpNavegacao.Visible = currentState == State.navigation; this.controloAutList1.Visible = currentState == State.filter; this.btnNavegar.ImageIndex = currentState == State.filter ? 0 : 1; this.btnNavegar.Text = currentState == State.filter ? "Tesauro" : "Voltar"; this.toolTip1.SetToolTip(this.btnNavegar, currentState == State.filter ? SharedResourcesOld.CurrentSharedResources.NavThesaurusStrings[0] : SharedResourcesOld.CurrentSharedResources.NavThesaurusStrings[1]); if (currentState == State.navigation) { var cadRow = this.controloAutList1.SelectedItems[0].Tag as GISADataset.ControloAutDicionarioRow; GisaDataSetHelper.HoldOpen ho = new GisaDataSetHelper.HoldOpen(GisaDataSetHelper.GetConnection()); try { this.controlTermosIndexacao1.trVwTermoIndexacao.Nodes.Clear(); this.controlTermosIndexacao1.LoadData(cadRow.ControloAutRow, ho.Connection); } catch (Exception) { throw; } finally { ho.Dispose(); } } }
private void comprovativoToolMenuItem_Click(object sender, EventArgs e) { GISADataset.MovimentoRow movRow = (GISADataset.MovimentoRow)this.movList.SelectedItems[0].Tag; List<MovimentoRule.DocumentoMovimentado> documents = new List<MovimentoRule.DocumentoMovimentado>(); GisaDataSetHelper.HoldOpen ho = new GisaDataSetHelper.HoldOpen(GisaDataSetHelper.GetConnection()); try { documents = MovimentoRule.Current.GetDocumentos(movRow.ID, GisaDataSetHelper.GetInstance(), ho.Connection); } catch (Exception ex) { Trace.WriteLine(ex); throw; } finally { ho.Dispose(); } Reports.Movimentos.RelatorioMovimento report = new Reports.Movimentos.RelatorioMovimento(movRow, documents, string.Format("Requisicao_{0}", movRow.ID), SessionHelper.GetGisaPrincipal().TrusteeUserOperator.ID); object o = new Reports.BackgroundRunner(TopLevelControl, report, 1); }
public override void LoadData() { if (CurrentContext.Movimento == null) { CurrentMovimento = null; return; } CurrentMovimento = CurrentContext.Movimento; GisaDataSetHelper.HoldOpen ho = new GisaDataSetHelper.HoldOpen(GisaDataSetHelper.GetTempConnection()); try { documentos = MovimentoRule.Current.GetDocumentos(CurrentMovimento.ID, GisaDataSetHelper.GetInstance(), ho.Connection); } catch (Exception ex) { Trace.WriteLine(ex); throw; } finally { ho.Dispose(); } }
protected override void UpdateTrustees(GISADataset.TrusteeRow tRow) { GisaDataSetHelper.HoldOpen ho = new GisaDataSetHelper.HoldOpen(GisaDataSetHelper.GetConnection()); try { TrusteeRule.Current.LoadTrusteesUsr(GisaDataSetHelper.GetInstance(), ho.Connection); } catch (Exception ex) { Trace.WriteLine(ex); throw; } finally { ho.Dispose(); } lstVwTrustees.Items.Clear(); ListViewItem item = null; ListViewItem selItem = null; foreach (var t in GisaDataSetHelper.GetInstance().Trustee.Cast<GISADataset.TrusteeRow>().ToList()) { #if TESTING item = lstVwTrustees.Items.Add(""); if (t == tRow) { selItem = item; } UpdateListViewItem(item, t); if (t.BuiltInTrustee) { item.ForeColor = System.Drawing.Color.Gray; } #else if (! t.BuiltInTrustee && t.IsVisibleObject) { item = lstVwTrustees.Items.Add(""); if (t == tRow) { selItem = item; } UpdateListViewItem(item, t); } #endif } lstVwTrustees.Sort(); if (selItem != null) { lstVwTrustees.EnsureVisible(selItem.Index); lstVwTrustees.selectItem(selItem); } }
public static ArrayList GetPossibleSubItems(GISADataset.NivelRow nRow) //PossibleSubNivel() { //ToDo() // Obter os TipoNivelRelacionados das RelacaoHierarquicas das EPs superiores. Para cada TiponivelRelacionado devolver também o intervalo da relação associada. // espandir os TipoNivelRelacionados permitidos como subníveis para cada um dos TipoNivelRelacionados encontrados anteriormente. Para cada um dos tipos de subnivel guardar o intervalo de data em que ele faz sentido ArrayList subNiveis = new ArrayList(); GisaDataSetHelper.HoldOpen ho = new GisaDataSetHelper.HoldOpen(GisaDataSetHelper.GetConnection()); try { Trace.WriteLine("<getPossibleSubTypesOf>"); IDataReader dataReader = null; dataReader = TipoNivelRule.Current.GetPossibleSubItems(nRow.ID, ho.Connection); Trace.WriteLine("<getPossibleSubTypesOf/>"); while (dataReader.Read()) { PossibleSubNivel subNivel = new PossibleSubNivel(); subNivel.SubIDTipoNivelRelacionado = System.Convert.ToInt64(dataReader.GetValue(0)); subNivel.Designacao = GisaDataSetHelper.GetDBNullableText(ref dataReader, 1); subNivel.InicioAno = GisaDataSetHelper.GetDBNullableText(ref dataReader, 2); subNivel.InicioMes = GisaDataSetHelper.GetDBNullableText(ref dataReader, 3); subNivel.InicioDia = GisaDataSetHelper.GetDBNullableText(ref dataReader, 4); subNivel.FimAno = GisaDataSetHelper.GetDBNullableText(ref dataReader, 5); subNivel.FimMes = GisaDataSetHelper.GetDBNullableText(ref dataReader, 6); subNivel.FimDia = GisaDataSetHelper.GetDBNullableText(ref dataReader, 7); subNiveis.Add(subNivel); } dataReader.Close(); } catch (Exception ex) { Trace.WriteLine(ex); throw ex; } finally { ho.Dispose(); } // não são encontrados subniveis organicos possiveis se não existirem if (subNiveis.Count == 0) { } return(subNiveis); }
public override void LoadData() { try { ((frmMain)TopLevelControl).EnterWaitMode(); GisaDataSetHelper.HoldOpen ho = new GisaDataSetHelper.HoldOpen(GisaDataSetHelper.GetConnection()); try { GisaDataSetHelper.ManageDatasetConstraints(false); if (!isLoaded) { if (CurrentContext.Deposito == null) return; // Recarregar a uf actual e guardar um contexto localmente DepositoRule.Current.LoadDepositoData(GisaDataSetHelper.GetInstance(), CurrentContext.Deposito.ID, ho.Connection); CurrentDeposito = GisaDataSetHelper.GetInstance().Deposito.Cast<GISADataset.DepositoRow>().SingleOrDefault(d => d.ID == CurrentContext.Deposito.ID); if (CurrentDeposito == null || CurrentDeposito.RowState == DataRowState.Detached || CurrentContext.Deposito == null || CurrentContext.Deposito.RowState == DataRowState.Detached) return; isLoaded = true; } GisaDataSetHelper.ManageDatasetConstraints(false); GISAPanel selectedPanel = (GISAPanel)this.DropDownTreeView1.SelectedNode.Tag; if (!selectedPanel.IsLoaded) { long startTicks = 0; startTicks = DateTime.Now.Ticks; selectedPanel.LoadData(CurrentDeposito, ho.Connection); Debug.WriteLine("Time dispend loading " + selectedPanel.ToString() + ": " + new TimeSpan(DateTime.Now.Ticks - startTicks).ToString()); } GisaDataSetHelper.ManageDatasetConstraints(true); } catch (System.Data.ConstraintException Ex) { Trace.WriteLine(Ex); GisaDataSetHelper.FixDataSet(GisaDataSetHelper.GetInstance(), ho.Connection); } finally { ho.Dispose(); } } finally { ((frmMain)TopLevelControl).LeaveWaitMode(); } }
[Test] public void validate_generated_ead() { GisaDataSetHelper.HoldOpen ho = new GisaDataSetHelper.HoldOpen(GisaDataSetHelper.GetConnection()); try { string fileName = "GISA_EAD_Test.xml"; EADGenerator gen_to_test = new EADGenerator(fileName, ho.Connection); long IDNivel_PAI = 214; long idNivel = 215; gen_to_test.generate(IDNivel_PAI, idNivel); validate(fileName); Assert.IsTrue(isValid); } finally { ho.Dispose(); } }
public static List<CAAssociado> GetRelatedControloAut(List<GISADataset.ControloAutDicionarioRow> cadRows) { var res = new List<CAAssociado>(); var ho = new GisaDataSetHelper.HoldOpen(GisaDataSetHelper.GetConnection()); try { var start = DateTime.Now.Ticks; res = DiplomaModeloRule.Current.GetCANiveisAssociados(cadRows.Select(r => r.IDControloAut).ToList(), ho.Connection); Trace.WriteLine("<<LoadNivelDesignadoOfSelfAndParent>>: " + new TimeSpan(DateTime.Now.Ticks - start).ToString()); } catch (Exception ex) { Debug.WriteLine(ex); throw ex; } finally { ho.Dispose(); } return res; }
public static List <CAAssociado> GetRelatedControloAut(List <GISADataset.ControloAutDicionarioRow> cadRows) { var res = new List <CAAssociado>(); var ho = new GisaDataSetHelper.HoldOpen(GisaDataSetHelper.GetConnection()); try { var start = DateTime.Now.Ticks; res = DiplomaModeloRule.Current.GetCANiveisAssociados(cadRows.Select(r => r.IDControloAut).ToList(), ho.Connection); Trace.WriteLine("<<LoadNivelDesignadoOfSelfAndParent>>: " + new TimeSpan(DateTime.Now.Ticks - start).ToString()); } catch (Exception ex) { Debug.WriteLine(ex); throw ex; } finally { ho.Dispose(); } return(res); }
private void LoadNivel(long idNivel) { GisaDataSetHelper.HoldOpen ho = new GisaDataSetHelper.HoldOpen(GisaDataSetHelper.GetConnection()); try{ DBAbstractDataLayer.DataAccessRules.NivelRule.Current.LoadNivelParents(idNivel, GisaDataSetHelper.GetInstance(), ho.Connection); } catch (Exception ex) { Trace.WriteLine(ex); throw; } finally { ho.Dispose(); } }
/* * Refresh do painel de apresentacao das metricas de espaco + pieChart */ private void Display_MetrosLineares() { AutoEliminacaoRule.Info_UFs_Larguras ufs = new AutoEliminacaoRule.Info_UFs_Larguras(); // Metros lineares totais: double Metros_lineares_totais = 0.0; this.globalConfigRow = (GISADataset.GlobalConfigRow)(GisaDataSetHelper.GetInstance().GlobalConfig.Rows[0]); if (this.globalConfigRow.IsMetrosLinearesTotaisNull()) this.txt_metrosLinearesTotais.Text = ""; else { Metros_lineares_totais = (double)this.globalConfigRow.MetrosLinearesTotais; this.txt_metrosLinearesTotais.Text = Metros_lineares_totais.ToString(); } // Metros lineares ocupados: double Metros_lineares_ocupados = 0.0; GisaDataSetHelper.HoldOpen ho = new GisaDataSetHelper.HoldOpen(GisaDataSetHelper.GetConnection()); try { // UFS totais: ufs = AutoEliminacaoRule.Current.Get_Info_UFs_Larguras(ho.Connection); Metros_lineares_ocupados = AutoEliminacaoRule.Current.GetMetrosLinearesOcupados(ho.Connection); this.txt_metrosLinearesOcupados.Text = Metros_lineares_ocupados.ToString(); } catch (Exception e) { Debug.WriteLine(e); throw; } finally { ho.Dispose(); } // Metros lineares livres: double Metros_lineares_livres = Metros_lineares_totais - Metros_lineares_ocupados; this.txt_metrosLinearesLivres.Text = Metros_lineares_livres.ToString(); this.lblLivres.ForeColor = (Metros_lineares_livres <= 0.0 ? Color.Red : Color.Black); // Estimativa de ocupacao para ufs sem largura: double Metros_ocupados_estimados = ufs.Media_largura * ufs.TotalUFs_semLargura; if (Metros_lineares_livres > 0 && Metros_lineares_ocupados > 0) CreateChart(this.zedGraphPieChartControl, Metros_lineares_livres, Metros_lineares_ocupados, Metros_ocupados_estimados); else CreateEmptyChart(this.zedGraphPieChartControl); // UFs totais: this.txt_UFsTotais.Text = ufs.TotalUFs.ToString(); this.txt_UFsSemLargura.Text = ufs.TotalUFs_semLargura.ToString(); }
public static bool isRemovable(GISADataset.NivelRow NivelRow, GISADataset.NivelRow NivelUpperRow, bool countUFs) { string filter = string.Empty; if (!countUFs) { filter = string.Format("rh.IDTipoNivelRelacionado != {0:d}", TipoNivelRelacionado.UF); } int parentCount = 0; int directChildCount = 0; bool moreThenOneParent = false; bool notExistsDirectChild = false; bool connectionClose = false; if (GisaDataSetHelper.GetConnection().State == ConnectionState.Closed) { connectionClose = true; GisaDataSetHelper.HoldOpen ho = new GisaDataSetHelper.HoldOpen(GisaDataSetHelper.GetTempConnection()); try { parentCount = DBAbstractDataLayer.DataAccessRules.NivelRule.Current.getParentCount(NivelRow.ID.ToString(), ho.Connection); directChildCount = DBAbstractDataLayer.DataAccessRules.NivelRule.Current.getDirectChildCount(NivelRow.ID.ToString(), filter, ho.Connection); moreThenOneParent = parentCount > 1; notExistsDirectChild = directChildCount == 0; } catch (Exception ex) { Trace.WriteLine(ex); throw; } finally { ho.Dispose(); } } return(!(TipoNivel.isNivelOrganico(NivelRow) && TipoNivel.isNivelOrganico(NivelUpperRow)) && (TipoNivel.isNivelOrganico(NivelRow) || (NivelRow != null && NivelRow.IDTipoNivel == TipoNivel.LOGICO && notExistsDirectChild) || (TipoNivel.isNivelOrganico(NivelUpperRow) && connectionClose && !moreThenOneParent && notExistsDirectChild) || ((NivelUpperRow == null || NivelUpperRow.IDTipoNivel == TipoNivel.DOCUMENTAL) && connectionClose && notExistsDirectChild) || (NivelUpperRow != null && NivelUpperRow.IDTipoNivel == TipoNivel.ESTRUTURAL && NivelRow.IDTipoNivel == TipoNivel.DOCUMENTAL && connectionClose && notExistsDirectChild && !moreThenOneParent) //permitir apagar séries/documentos soltos só com um produtor e sem niveis descendentes )); // o estado da ligação tem de se ser fechado para que não ocorram situações de deadlock na BD }
public override void LoadData() { GisaDataSetHelper.HoldOpen ho = new GisaDataSetHelper.HoldOpen(GisaDataSetHelper.GetConnection()); try { NivelRule.Current.LoadImagemIlustracao(CurrentContext.GrupoArquivo.ID, GisaDataSetHelper.GetInstance(), ho.Connection); currentGARow = CurrentContext.GrupoArquivo; } catch (Exception ex) { Trace.WriteLine(ex); throw; } finally { ho.Dispose(); } }
public override void LoadData() { var ho = new GisaDataSetHelper.HoldOpen(GisaDataSetHelper.GetConnection()); try { CurrentTrustee = CurrentContext.Trustee; if (CurrentTrustee != null) DepositoRule.Current.LoadDepositosPermissionsData(GisaDataSetHelper.GetInstance(), CurrentTrustee.ID, ho.Connection); } catch (Exception) { CurrentTrustee = null; return; } finally { ho.Dispose(); } }
public void LoadData() { GisaDataSetHelper.HoldOpen ho = new GisaDataSetHelper.HoldOpen(GisaDataSetHelper.GetConnection()); try { FedoraRule.Current.LoadTitulos(GisaDataSetHelper.GetInstance(), ho.Connection); } catch (Exception ex) { Trace.WriteLine(ex.ToString()); throw ex; } finally { ho.Dispose(); } PopulateList(FilterTitle("",false)); }
public static bool NivelFoiMovimentado(long IDNivel) { bool foiMov = false; GisaDataSetHelper.HoldOpen ho = new GisaDataSetHelper.HoldOpen(GisaDataSetHelper.GetConnection()); try { foiMov = MovimentoRule.Current.foiMovimentado(IDNivel, ho.Connection); } catch (Exception ex) { Trace.WriteLine(ex.ToString()); throw; } finally { ho.Dispose(); } return(foiMov); }
public static string GetConteudoInformacional(GISADataset ds, GISADataset.NivelRow nivelUF) { var ho = new GisaDataSetHelper.HoldOpen(GisaDataSetHelper.GetConnection()); try { DBAbstractDataLayer.DataAccessRules.UFRule.Current.LoadUFConteudoEstruturaData(ds, nivelUF.GetFRDBaseRows()[0].ID, ho.Connection); } catch (Exception ex) { Trace.WriteLine(ex); throw; } finally { ho.Dispose(); } var ce = nivelUF.GetFRDBaseRows()[0].GetSFRDConteudoEEstruturaRows().FirstOrDefault(); return(ce != null ? ce.ConteudoInformacional : ""); }
public static void Main() { GisaDataSetHelper.HoldOpen ho = new GisaDataSetHelper.HoldOpen(GisaDataSetHelper.GetConnection()); try { string fileName = "GISA_EAD_Test.xml"; EADGenerator gen_to_test = new EADGenerator(fileName, ho.Connection); //long idNivel = 100317; //long idNivel = 1865; //long idNivel = 23; // GISA_CS7_FEUP: //long idNivel = 14; // Pautas ... //long idNivel = 212; // Secretaria //long idNivel = 178; // Conselho directivo //long IDNivel_PAI = 214; //long idNivel = 215; // Direcao de servicos academicos... long IDNivel_PAI = 220; // FEUP long idNivel = 222; //long IDNivel_PAI = 19; // FEUP //long idNivel = 52416; //long idNivel = 219; // Seccao de pessoal //long idNivel = 168; // (Serie) Comissao cooordenadora... //long idNivel = 102027; // Para imagens: // GISA_CS6_CMGaia: 48326; 50600 //long idNivel = 50066; // Secretaria //long idNivel = 50570; // Orlando Miranda //long idNivel = 46139; // Presidência. 2002-2008 gen_to_test.generate(IDNivel_PAI, idNivel); validate(fileName); } finally { ho.Dispose(); } }
public bool HasSDocs(long IDNivel) { long numSubDocs = 0; GisaDataSetHelper.HoldOpen ho = new GisaDataSetHelper.HoldOpen(GisaDataSetHelper.GetConnection()); try { numSubDocs = PesquisaRule.Current.CountSubDocumentos(IDNivel, ho.Connection); } catch (Exception ex) { Trace.WriteLine(ex); throw; } finally { ho.Dispose(); } return numSubDocs > 0; }
private void ActivateDetalhesImagem() { ClearPreview(); if (PesquisaList1.GetSelectedRows.Count() == 1) { ImagemEscolhida = null; lstImagens.Items.Clear(); ClearPreview(); trvODsFedora.Nodes.Clear(); lstImagens.Items.Clear(); lstImagens.DisplayMember = "Descricao"; //var frdRow = PesquisaList1.SelectedItems[0].Tag as GISADataset.FRDBaseRow; var frdRow = PesquisaList1.SelectedRow as GISADataset.FRDBaseRow; var rhRow = frdRow.NivelRow.GetRelacaoHierarquicaRowsByNivelRelacaoHierarquica().First(); GisaDataSetHelper.ManageDatasetConstraints(false); GisaDataSetHelper.HoldOpen ho = new GisaDataSetHelper.HoldOpen(GisaDataSetHelper.GetConnection()); try { DBAbstractDataLayer.DataAccessRules.PesquisaRule.Current.LoadImagemVolume(GisaDataSetHelper.GetInstance(), frdRow.ID, ho.Connection); DBAbstractDataLayer.DataAccessRules.FedoraRule.Current.LoadObjDigitalData(GisaDataSetHelper.GetInstance(), frdRow.IDNivel, rhRow.IDTipoNivelRelacionado, ho.Connection); } finally { ho.Dispose(); } GisaDataSetHelper.ManageDatasetConstraints(true); var isModoPublicadoOnly = MasterPanelPesquisa.cbModulo.SelectedItem.Equals(TranslationHelper.FormatModPesquisaIntToText(ModuloPesquisa.Publicacao)); // listar imagens que não do tipo Fedora lstImagens.Items.AddRange(frdRow.GetSFRDImagemRows().Where(r => !r.Tipo.Equals(FedoraHelper.typeFedora)).OrderBy(r => r.GUIOrder).ToArray()); // listar imagens do tipo fedora var odRows = FedoraHelper.GetObjetosDigitais(frdRow); foreach (var odRow in odRows.OrderBy(r => r.GUIOrder)) { var node = new TreeNode(); ; node.ImageIndex = 3; node.SelectedImageIndex = 3; node.Text = odRow.Titulo; node.Tag = odRow; var odRowsSimples = odRow.GetObjetoDigitalRelacaoHierarquicaRowsByObjetoDigitalObjetoDigitalRelacaoHierarquicaUpper().Select(r => r.ObjetoDigitalRowByObjetoDigitalObjetoDigitalRelacaoHierarquica).ToList(); if (odRowsSimples.Count > 0) { foreach (var odRowSimples in odRowsSimples.OrderBy(r => r.GUIOrder)) { var perm = PermissoesHelper.CalculateEffectivePermissions(odRowSimples, SessionHelper.GetGisaPrincipal().TrusteeUserOperator.TrusteeRow, frdRow.NivelRow, PermissoesHelper.ObjDigOpREAD.TipoOperationRow); if (perm == PermissoesHelper.PermissionType.ExplicitDeny || perm == PermissoesHelper.PermissionType.ImplicitDeny || (isModoPublicadoOnly && !odRowSimples.Publicado)) continue; var subDocNode = new TreeNode(); subDocNode.Text = odRowSimples.Titulo; subDocNode.Tag = odRowSimples; subDocNode.ImageIndex = 3; subDocNode.SelectedImageIndex = 3; node.Nodes.Add(subDocNode); } if (node.Nodes.Count == 0) continue; if (!isModoPublicadoOnly || !odRow.Publicado) node.ForeColor = Color.Gray; node.Expand(); } else { var perm = PermissoesHelper.CalculateEffectivePermissions(odRow, SessionHelper.GetGisaPrincipal().TrusteeUserOperator.TrusteeRow, frdRow.NivelRow, PermissoesHelper.ObjDigOpREAD.TipoOperationRow); if (perm == PermissoesHelper.PermissionType.ExplicitDeny || perm == PermissoesHelper.PermissionType.ImplicitDeny || (isModoPublicadoOnly && !odRow.Publicado)) continue; } trvODsFedora.Nodes.Add(node); } pnlDetalhesImagem.BringToFront(); } else ToolBar_ButtonClick(this, new ToolBarButtonClickEventArgs(ToolBarButton2)); }
private string GetFRDBaseAsRTF(GISADataset.FRDBaseRow FRDBaseRow) { GisaDataSetHelper.ManageDatasetConstraints(false); StringBuilder Result = new StringBuilder(); var cotas = new List<string>(); GisaDataSetHelper.HoldOpen ho = new GisaDataSetHelper.HoldOpen(GisaDataSetHelper.GetConnection()); try { string IDFRDbase = FRDBaseRow.ID.ToString(); PesquisaRule.Current.LoadFRDBaseData(GisaDataSetHelper.GetInstance(), IDFRDbase, ho.Connection); if (FRDBaseRow.NivelRow.IDTipoNivel == TipoNivel.ESTRUTURAL) DBAbstractDataLayer.DataAccessRules.ControloAutRule.Current.LoadControloAutFromNivel(GisaDataSetHelper.GetInstance(), FRDBaseRow.NivelRow.ID, ho.Connection); // Obter info sobre cota se for documento ou subdocumento var idTipoNivelRelacionado = FRDBaseRow.NivelRow.GetRelacaoHierarquicaRowsByNivelRelacaoHierarquica().First().IDTipoNivelRelacionado; if (idTipoNivelRelacionado == TipoNivelRelacionado.D || idTipoNivelRelacionado == TipoNivelRelacionado.SD) cotas = PesquisaRule.Current.LoadDocumentoCotas(IDFRDbase, ho.Connection); // --Identificação-- Result.Append("\\fs36\\b{}Identificação\\b0{}\\fs24\\sb196\\sa48\\par{}\\sb0\\sa0{}"); // Codigo de Referência Result.Append(GetConditionalText("\\i{}Código de referencia: \\i0{}", DBAbstractDataLayer.DataAccessRules.NivelRule.Current.GetCodigoOfNivel(FRDBaseRow.NivelRow.ID, ho.Connection)[0].ToString(), "\\par{}")); } catch (Exception ex) { Trace.WriteLine(ex); } finally { ho.Dispose(); GisaDataSetHelper.ManageDatasetConstraints(true); } // Nivel de descrição (TipoNivel) Result.Append(GetConditionalText("\\i{}Nível de descrição: \\i0{}", TipoNivelRelacionado.GetTipoNivelRelacionadoDaPrimeiraRelacaoEncontrada(FRDBaseRow.NivelRow).Designacao, "\\par{}")); // Título //Result.Append("\\i{}Designação: \\i0{}" + Nivel.GetDesignacao(FRDBaseRow.NivelRow) + "\\par{}"); Result.Append("\\i{}Título: \\i0{}" + Nivel.GetDesignacao(FRDBaseRow.NivelRow) + "\\par{}"); // Datas if (FRDBaseRow.GetSFRDDatasProducaoRows().Length == 1) { string inicioTexto = string.Empty; if (!FRDBaseRow.GetSFRDDatasProducaoRows()[0].IsInicioTextoNull()) inicioTexto = FRDBaseRow.GetSFRDDatasProducaoRows()[0].InicioTexto + " "; Result.Append("\\i{}Data(s) de produção: \\i0{}" + inicioTexto + GUIHelper.GUIHelper.FormatDateInterval(FRDBaseRow.GetSFRDDatasProducaoRows()[0]) + "\\par{}"); } // Agrupador if (FRDBaseRow.GetSFRDAgrupadorRows().Length == 1) Result.Append(GetConditionalText("\\i{}Agrupador: \\i0{}", FRDBaseRow.GetSFRDAgrupadorRows()[0].Agrupador, "\\par{}")); //Dimensão do documento var dimSup = GisaDataSetHelper.GetInstance().SFRDDimensaoSuporte.Cast<GISADataset.SFRDDimensaoSuporteRow>() .SingleOrDefault(r => r.IDFRDBase == FRDBaseRow.ID); if (dimSup != null) Result.Append(GetConditionalText("\\i{}Dimensão: \\i0{}", dimSup["Nota"] == DBNull.Value ? "" : dimSup.Nota, "\\par{}")); // Cota do documento na UF if (cotas.Count > 0) { Result.AppendLine("\\i{}Cota: \\i0{}\\par{}"); var cotasStr = new StringBuilder(); cotas.ForEach(c => { if (cotasStr.Length > 0) cotasStr.Append("\\b, \\b0"); cotasStr.Append(c); }); Result.Append(cotasStr); Result.Append("\\par{}"); } // --Contexto-- StringBuilder Contexto = new StringBuilder(); if (FRDBaseRow.GetSFRDContextoRows().Length == 1) { if (FRDBaseRow.NivelRow.IDTipoNivel != TipoNivel.ESTRUTURAL) Contexto.Append(GetConditionalText("\\i{}História administrativa: \\i0{}\\par{}", string.Format("{0}", FRDBaseRow.GetSFRDContextoRows()[0]["HistoriaAdministrativa"]), "\\par{}")); else { GISADataset.ControloAutRow caRow = FRDBaseRow.NivelRow.GetNivelControloAutRows()[0].ControloAutRow; GISADataset.ControloAutDatasExistenciaRow cadeRow = null; if (caRow.GetControloAutDatasExistenciaRows().Length > 0) { cadeRow = caRow.GetControloAutDatasExistenciaRows()[0]; Contexto.Append(GetConditionalText("\\i{}Datas de existência: \\i0{}\\par{}", GUIHelper.GUIHelper.FormatDateInterval(cadeRow), "\\par{}")); } Contexto.Append(GetConditionalText("\\i{}História: \\i0{}\\par{}", string.Format("{0}", caRow["DescHistoria"]), "\\par{}")); Contexto.Append(GetConditionalText("\\i{}Zona geográfica: \\i0{}\\par{}", string.Format("{0}", caRow["DescZonaGeografica"]), "\\par{}")); Contexto.Append(GetConditionalText("\\i{}Estatuto legal: \\i0{}\\par{}", string.Format("{0}", caRow["DescEstatutoLegal"]), "\\par{}")); Contexto.Append(GetConditionalText("\\i{}Funções, ocupações e atividades: \\i0{}\\par{}", string.Format("{0}", caRow["DescOcupacoesActividades"]), "\\par{}")); Contexto.Append(GetConditionalText("\\i{}Enquadramento legal: \\i0{}\\par{}", string.Format("{0}", caRow["DescEnquadramentoLegal"]), "\\par{}")); Contexto.Append(GetConditionalText("\\i{}Estrutura interna: \\i0{}\\par{}", string.Format("{0}", caRow["DescEstruturaInterna"]), "\\par{}")); Contexto.Append(GetConditionalText("\\i{}Contexto geral: \\i0{}\\par{}", string.Format("{0}", caRow["DescContextoGeral"]), "\\par{}")); Contexto.Append(GetConditionalText("\\i{}Outras informações relevantes: \\i0{}\\par{}", string.Format("{0}", caRow["DescOutraInformacaoRelevante"]), "\\par{}")); } Contexto.Append(GetConditionalText("\\i{}História arquivística: \\i0{}\\par{}", string.Format("{0}", FRDBaseRow.GetSFRDContextoRows()[0]["HistoriaCustodial"]), "\\par{}")); Contexto.Append(GetConditionalText("\\i{}Fonte imediata de aquisicao: \\i0{}\\par{}", string.Format("{0}", FRDBaseRow.GetSFRDContextoRows()[0]["FonteImediataDeAquisicao"]), "\\par{}")); GISADataset.RelacaoHierarquicaRow[] rhrows = FRDBaseRow.NivelRow.GetRelacaoHierarquicaRowsByNivelRelacaoHierarquica(); if (rhrows.Length > 0) { Int64 idT = FRDBaseRow.NivelRow.GetRelacaoHierarquicaRowsByNivelRelacaoHierarquica()[0].TipoNivelRelacionadoRow.ID; if ((idT == TipoNivelRelacionado.SR) || (idT == TipoNivelRelacionado.SSR)) { if (System.Convert.ToBoolean(FRDBaseRow.GetSFRDContextoRows()[0]["SerieAberta"])) Contexto.Append(GetConditionalText("\\i{}Condição da Série: \\i0{}\\par{}", string.Format("{0}", "Aberta"), "\\par{}")); else Contexto.Append(GetConditionalText("\\i{}Condição da Série: \\i0{}\\par{}", string.Format("{0}", "Fechada"), "\\par{}")); } } } if (FRDBaseRow.NivelRow.IDTipoNivel == TipoNivel.ESTRUTURAL) { Result.Append(Section("\\fs36\\b{}Contexto\\b0{}\\fs24\\sb196\\sa48\\par{}\\sb0\\sa0{}", Contexto.ToString())); } else { GetAutores(FRDBaseRow.NivelRow); GetEntidadesProdutoras(FRDBaseRow.NivelRow); Result.Append(Section("\\fs36\\b{}Contexto\\b0{}\\fs24\\sb196\\sa48\\par{}\\sb0\\sa0{}", GetConditionalText("\\i{}Autores: \\i0{}", printCAs(Autores), Contexto.ToString()), GetConditionalText("\\i{}Entidade produtora: \\i0{}", printCAs(EPs), Contexto.ToString()) )); } // --ConteudoEstrutura-- 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), ""))); // -- Conteudo caso seja um processo de obras -- ho = new GisaDataSetHelper.HoldOpen(GisaDataSetHelper.GetConnection()); bool processoObras = IsRelatedToProcessoObras(FRDBaseRow, ho.Connection); // Dados estruturados de processos de obras: try { if (processoObras) { //Result.Append(GetConditionalText("", "\\i{}Conteúdo informacional: \\i0{}\\par{}", "\\li128\\par\\li0{}")); Result.Append(GetConditionalText("", "\\i{}Conteúdo informacional: \\i0{}\\par{}", "")); Result.Append(gen_content_PROCESSO_OBRAS(FRDBaseRow.IDNivel, ho.Connection)); } } catch (Exception ex) { Trace.WriteLine(ex); } finally { ho.Dispose(); GisaDataSetHelper.ManageDatasetConstraints(true); } string ConteudoEstrutura = ""; if (FRDBaseRow.GetSFRDConteudoEEstruturaRows().Length == 1) { if (!processoObras) ConteudoEstrutura += GetConditionalText("\\i{}Conteúdo informacional: \\i0{}\\par{}", string.Format(" {0}", FRDBaseRow.GetSFRDConteudoEEstruturaRows()[0]["ConteudoInformacional"]), "\\li128\\par\\li0{}"); else ConteudoEstrutura += GetConditionalText("\\i{}Observações: \\i0{}\\par{}", string.Format(" {0}", FRDBaseRow.GetSFRDConteudoEEstruturaRows()[0]["ConteudoInformacional"]), "\\li128\\par\\li0{}"); ConteudoEstrutura += GetConditionalText("\\i{}Diploma: \\i0{}\\par{}", GetTermosIndexados(FRDBaseRow, TipoNoticiaAut.Diploma), "\\li128\\li0{}"); ConteudoEstrutura += GetConditionalText("\\i{}Modelo: \\i0{}\\par{}", GetTermosIndexados(FRDBaseRow, TipoNoticiaAut.Modelo), "\\li128\\li0{}"); //Avaliação if (FRDBaseRow.GetSFRDAvaliacaoRows().Length > 0) { string ava = null; var sfrda = FRDBaseRow.GetSFRDAvaliacaoRows()[0]; ConteudoEstrutura += GetConditionalText("\\i{}Observações/Enquadramento legal: \\i0{}\\par{}", string.Format("{0}", sfrda["Observacoes"]), "\\li128\\par\\li0{}"); if (sfrda.IsPreservarNull() && sfrda.IsPrazoConservacaoNull()) ava = ""; else { if (sfrda.Preservar) ava = "Preservar."; else ava = "Eliminar após " + (sfrda.IsPrazoConservacaoNull() ? "0" : sfrda.PrazoConservacao.ToString()) + " ano(s)."; } if (ava.CompareTo("") != 0) ConteudoEstrutura += GetConditionalText("\\i{}Avaliação: \\i0{}\\par{}", ava, "\\li128\\li0{}\\par{}"); ConteudoEstrutura += "\\i{}Publicado: \\i0{}\\par{}" + Concorrencia.translateBoolean(FRDBaseRow.GetSFRDAvaliacaoRows()[0].Publicar) + "\\li128\\par\\li0{}"; ConteudoEstrutura += GetConditionalText("\\i{}Referência na tabela de avaliação: \\i0{}\\par{}", string.Format("{0}", FRDBaseRow.GetSFRDAvaliacaoRows()[0]["RefTabelaAvaliacao"]), "\\li128\\li0{}\\par{}"); if (!sfrda.IsIDAutoEliminacaoNull()) ConteudoEstrutura += "\\i{}Auto de eliminação: \\i0{}\\par{}" + sfrda.AutoEliminacaoRow.Designacao + "\\li128\\li0{}\\par{}"; } ConteudoEstrutura += GetConditionalText("\\i{}Incorporações: \\i0{}\\par{}", string.Format("{0}", FRDBaseRow.GetSFRDConteudoEEstruturaRows()[0]["Incorporacao"]), "\\li128\\par\\li0{}"); Result.Append(ConteudoEstrutura); } // --Condições de acesso e de utilização-- if (FRDBaseRow.GetSFRDCondicaoDeAcessoRows().Length == 1) { // Linguas string langs = ""; foreach (GISADataset.SFRDLinguaRow lang in FRDBaseRow.GetSFRDCondicaoDeAcessoRows()[0].GetSFRDLinguaRows()) langs += lang.Iso639Row.LanguageNameEnglish + ", "; if (langs.Length > 2) langs = langs.Substring(0, langs.Length - 2); //Alfabetos string alfs = ""; foreach (GISADataset.SFRDAlfabetoRow alf in FRDBaseRow.GetSFRDCondicaoDeAcessoRows()[0].GetSFRDAlfabetoRows()) alfs += alf.Iso15924Row.ScriptNameEnglish + ", "; if (alfs.Length > 2) alfs = alfs.Substring(0, alfs.Length - 2); //Formas Suporte/Acondicionamento string fsas = ""; foreach (GISADataset.SFRDFormaSuporteAcondRow fsa in FRDBaseRow.GetSFRDCondicaoDeAcessoRows()[0].GetSFRDFormaSuporteAcondRows()) fsas += fsa.TipoFormaSuporteAcondRow.Designacao + ", "; if (fsas.Length > 2) fsas = fsas.Substring(0, fsas.Length - 2); //Materiais de Suporte string mats = ""; foreach (GISADataset.SFRDMaterialDeSuporteRow mat in FRDBaseRow.GetSFRDCondicaoDeAcessoRows()[0].GetSFRDMaterialDeSuporteRows()) mats += mat.TipoMaterialDeSuporteRow.Designacao + ", "; if (mats.Length > 2) mats = mats.Substring(0, mats.Length - 2); //Tecnicas de Registo string tecs = ""; foreach (GISADataset.SFRDTecnicasDeRegistoRow tec in FRDBaseRow.GetSFRDCondicaoDeAcessoRows()[0].GetSFRDTecnicasDeRegistoRows()) tecs += tec.TipoTecnicasDeRegistoRow.Designacao + ", "; if (tecs.Length > 2) tecs = tecs.Substring(0, tecs.Length - 2); //Estado de Conservação string cons = ""; foreach (GISADataset.SFRDEstadoDeConservacaoRow con in FRDBaseRow.GetSFRDCondicaoDeAcessoRows()[0].GetSFRDEstadoDeConservacaoRows()) cons += con.TipoEstadoDeConservacaoRow.Designacao + ", "; if (cons.Length > 2) cons = cons.Substring(0, cons.Length - 2); Result.Append(Section("\\fs36\\b{}Condições de acesso e de utilização\\b0{}\\fs24\\sb196\\sa48\\par{}\\sb0\\sa0{}", GetConditionalText("\\i{}Condições de acesso: \\i0{}\\par{}", string.Format("{0}", FRDBaseRow.GetSFRDCondicaoDeAcessoRows()[0]["CondicaoDeAcesso"]), "\\li128\\par\\li0{}"), GetConditionalText("\\i{}Condições de reprodução: \\i0{}\\par{}", string.Format("{0}", FRDBaseRow.GetSFRDCondicaoDeAcessoRows()[0]["CondicaoDeReproducao"]), "\\li128\\par\\li0{}"), GetConditionalText("\\i{}Linguas: \\i0{}\\par{}", string.Format("{0}", langs), "\\li128\\par\\li0{}"), GetConditionalText("\\i{}Alfabetos: \\i0{}\\par{}", string.Format("{0}", alfs), "\\li128\\par\\li0{}"), GetConditionalText("\\i{}Formas de Suporte / Acondicionamento: \\i0{}\\par{}", string.Format("{0}", fsas), "\\li128\\par\\li0{}"), GetConditionalText("\\i{}Materiais de Suporte: \\i0{}\\par{}", string.Format("{0}", mats), "\\li128\\par\\li0{}"), GetConditionalText("\\i{}Técnicas de Registo: \\i0{}\\par{}", string.Format("{0}", tecs), "\\li128\\par\\li0{}"), GetConditionalText("\\i{}Estado de Conservação: \\i0{}\\par{}", string.Format("{0}", cons), "\\li128\\par\\li0{}"), GetConditionalText("\\i{}Instrumentos de pesquisa: \\i0{}\\par{}", string.Format("{0}", FRDBaseRow.GetSFRDCondicaoDeAcessoRows()[0]["AuxiliarDePesquisa"]), "\\li128\\par\\li0{}"))); } // --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{}", string.Format("{0}", FRDBaseRow.GetSFRDDocumentacaoAssociadaRows()[0]["ExistenciaDeOriginais"]), "\\li128\\par\\li0{}") + GetConditionalText("\\i{}Existência e localização de cópias: \\i0{}\\par{}", string.Format("{0}", FRDBaseRow.GetSFRDDocumentacaoAssociadaRows()[0]["ExistenciaDeCopias"]), "\\li128\\par\\li0{}") + GetConditionalText("\\i{}Unidades de Descrição: \\i0{}\\par{}", string.Format("{0}", FRDBaseRow.GetSFRDDocumentacaoAssociadaRows()[0]["UnidadesRelacionadas"]), "\\li128\\par\\li0{}") + GetConditionalText("\\i{}Notas de Publicação: \\i0{}\\par{}", string.Format("{0}", FRDBaseRow.GetSFRDDocumentacaoAssociadaRows()[0]["NotaDePublicacao"]), "\\li128\\par\\li0{}"))); // --Notas-- if (FRDBaseRow.GetSFRDNotaGeralRows().Length > 0) Result.Append(Section("\\fs36\\b{}Nota Geral\\b0{}\\fs24\\sb196\\sa48\\par{}\\sb0\\sa0{}", GetConditionalText("", string.Format("{0}", FRDBaseRow.GetSFRDNotaGeralRows()[0]["NotaGeral"]), "\\li128\\par\\li0{}"))); // --Controlo de Descrição-- if (! (FRDBaseRow.IsRegrasOuConvencoesNull())) { string lastEdit = ""; if (GisaDataSetHelper.GetInstance().FRDBaseDataDeDescricao.Select("IdFRDBase =" + FRDBaseRow.ID.ToString(), "DataEdicao DESC").Length > 0) lastEdit = ((GISADataset.FRDBaseDataDeDescricaoRow)(GisaDataSetHelper.GetInstance().FRDBaseDataDeDescricao.Select("IdFRDBase =" + FRDBaseRow.ID.ToString(), "DataEdicao DESC")[0])).DataEdicao.ToString(); Result.Append(Section("\\fs36\\b{}Controlo de Descrição\\b0{}\\fs24\\sb196\\sa48\\par{}\\sb0\\sa0{}", GetConditionalText("\\i{}Regras e Convenções: \\i0{}\\par{}", string.Format("{0}", FRDBaseRow.RegrasOuConvencoes), "\\li128\\par\\li0{}") + GetConditionalText("\\i{}Notas do arquivista: \\i0{}\\par{}", string.Format("{0}", FRDBaseRow.NotaDoArquivista), "\\li128\\par\\li0{}") + GetConditionalText("\\i{}Data da última edição: \\i0{}\\par{}", string.Format("{0}", lastEdit), "\\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_OutrasFormas(FRDBaseRow), ""))); // Acrescentar informação nos detalhes dos resultados da pesquisa de UAs: // Informação de requisição, se estiver requisitada e não devolvida. Qual a requisição, a data e a entidade e as notas. ho = new GisaDataSetHelper.HoldOpen(GisaDataSetHelper.GetConnection()); try { //string ID = FRDBaseRow.ID.ToString(); if (MovimentoRule.Current.estaRequisitado(FRDBaseRow.IDNivel, ho.Connection)) { MovimentoRule.RequisicaoInfo requisicao = MovimentoRule.Current.getRequisicaoInfo(FRDBaseRow.IDNivel, ho.Connection); Result.Append("\\fs36\\b{}Requisição:\\b0{}\\fs24\\sb196\\sa48\\par{}\\sb0\\sa0{}"); // Codigo de movimento Result.Append(GetConditionalText("\\i{}Movimento: \\i0{}", requisicao.idMovimento.ToString(), "\\par{}")); Result.Append(GetConditionalText("\\i{}Data: \\i0{}", requisicao.data.ToString(), "\\par{}")); Result.Append(GetConditionalText("\\i{}Entidade: \\i0{}", requisicao.entidade, "\\par{}")); Result.Append(GetConditionalText("\\i{}Notas: \\i0{}", requisicao.notas, "\\par{}")); } } catch (Exception ex) { Trace.WriteLine(ex); } finally { ho.Dispose(); } return Result.ToString(); }
private void ExecuteFilter() { PersistencyHelper.SaveResult successfulSave = PersistencyHelper.save(); PersistencyHelper.cleanDeletedData(); if (successfulSave == PersistencyHelper.SaveResult.unsuccessful) return; else if (successfulSave == PersistencyHelper.SaveResult.successful) GISA.Search.Updater.updateUnidadeFisica(CurrentNivel.GetFRDBaseRows()[0].NivelRow.ID); if ((FilterTipoNivelRelacionado == -1) && (TextFilterDesignacao == string.Empty)) { filtered = false; filter.Clear(); GisaDataSetHelper.HoldOpen ho = new GisaDataSetHelper.HoldOpen(GisaDataSetHelper.GetConnection()); try { ordem = FRDRule.Current.LoadUFUnidadesDescricaoData(GisaDataSetHelper.GetInstance(), CurrentNivel.ID, ho.Connection); detalhes = FRDRule.Current.LoadUFUnidadesDescricaoDetalhe(GisaDataSetHelper.GetInstance(), CurrentNivel.ID, SessionHelper.GetGisaPrincipal().TrusteeUserOperator.ID, ho.Connection); } catch (Exception ex) { Trace.WriteLine(ex); throw; } finally { ho.Dispose(); } } else { filtered = true; filter.Clear(); GisaDataSetHelper.HoldOpen ho = new GisaDataSetHelper.HoldOpen(GisaDataSetHelper.GetConnection()); try { ordem = FRDRule.Current.LoadUFUnidadesDescricaoData(GisaDataSetHelper.GetInstance(), CurrentNivel.ID, ho.Connection); detalhes = FRDRule.Current.LoadUFUnidadesDescricaoDetalhe(GisaDataSetHelper.GetInstance(), CurrentNivel.ID, SessionHelper.GetGisaPrincipal().TrusteeUserOperator.ID, ho.Connection); filter = FRDRule.Current.FilterUFUnidadesDescricao(TextFilterDesignacao, FilterTipoNivelRelacionado, CurrentNivel.ID, ho.Connection); } catch (Exception ex) { Trace.WriteLine(ex); throw; } finally { ho.Dispose(); } } RepopulateNiveisAssociados(); }
private void AddDetalhe(GISADataset.NivelRow nRow, string nCod) { if (detalhes[nRow.ID] == null) { ArrayList aux = new ArrayList(); GISADataset.SFRDDatasProducaoRow sfrddprow = null; string ia = null; string im = null; string id = null; string fa = null; string fm = null; string fd = null; if (nRow.GetFRDBaseRows()[0].GetSFRDDatasProducaoRows().Length > 0) { sfrddprow = (GISADataset.SFRDDatasProducaoRow)(nRow.GetFRDBaseRows()[0].GetSFRDDatasProducaoRows()[0]); if (sfrddprow.IsInicioAnoNull()) ia = ""; else ia = sfrddprow.InicioAno; if (sfrddprow.IsInicioMesNull()) im = ""; else im = sfrddprow.InicioMes; if (sfrddprow.IsInicioDiaNull()) id = ""; else id = sfrddprow.InicioDia; if (sfrddprow.IsFimAnoNull()) fa = ""; else fa = sfrddprow.FimAno; if (sfrddprow.IsFimMesNull()) fm = ""; else fm = sfrddprow.FimMes; if (sfrddprow.IsFimDiaNull()) fd = ""; else fd = sfrddprow.FimDia; } else { ia = ""; im = ""; id = ""; fa = ""; fm = ""; fd = ""; } GisaDataSetHelper.HoldOpen ho = new GisaDataSetHelper.HoldOpen(GisaDataSetHelper.GetConnection()); try { if (nRow.IDTipoNivel == 3) aux.Add(nRow.GetNivelDesignadoRows()[0].Designacao); else { DBAbstractDataLayer.DataAccessRules.NivelRule.Current.FillNivelControloAutRows(GisaDataSetHelper.GetInstance(), nRow.ID, ho.Connection); if (nRow.GetNivelControloAutRows().Length > 0) aux.Add(nRow.GetNivelControloAutRows()[0].ControloAutRow.GetControloAutDicionarioRows()[0].DicionarioRow.Termo); else if (nRow.GetNivelDesignadoRows().Length > 0) aux.Add(nRow.GetNivelDesignadoRows()[0].Designacao); } aux.Add(nRow.GetRelacaoHierarquicaRowsByNivelRelacaoHierarquica()[0].TipoNivelRelacionadoRow.ID); aux.Add(ia); aux.Add(im); aux.Add(id); aux.Add(fa); aux.Add(fm); aux.Add(fd); aux.Add(nCod); aux.Add("1"); // Se aparece aqui é porque temos permissao... if (MovimentoRule.Current.estaRequisitado(nRow.ID, ho.Connection)) aux.Add(true); else aux.Add(false); } catch (Exception ex) { Trace.WriteLine(ex); throw; } finally { ho.Dispose(); } detalhes.Add(nRow.ID, aux); } }
private void ShowSelection(MasterPanelPesquisa MasterPanel) { ToolBar_ButtonClick(this, new ToolBarButtonClickEventArgs(ToolBarButton2)); GISADataset.RelacaoHierarquicaRow rhRow = null; var ho = new GisaDataSetHelper.HoldOpen(GisaDataSetHelper.GetConnection()); try { if (MasterPanel.cnList.SelectedRelacaoHierarquica != null) { rhRow = MasterPanel.cnList.SelectedRelacaoHierarquica; if (TipoNivelRelacionado.GetTipoNivelRelacionadoFromRelacaoHierarquica(rhRow).IDTipoNivel != TipoNivel.DOCUMENTAL) return; PesquisaRule.Current.LoadSelectedData(GisaDataSetHelper.GetInstance(), rhRow.ID, Convert.ToInt64(TipoFRDBase.FRDOIRecolha), ho.Connection); } // se não existir um nó selecionado para o nivel do nó selecionado ignora-se a chamada a este metodo if (rhRow == null) return; try { // este teste relevou-se necessário para algumas sequencias de acções faziam o TopLevelControl ser null quando chegavamos a este ponto if (TopLevelControl != null) ((frmMain)TopLevelControl).EnterWaitMode(); this.lblFuncao.Text = string.Format("selecionado {0}", rhRow.TipoNivelRelacionadoRow.Designacao); this.lblFuncao.Update(); } catch (Exception Ex) { Trace.WriteLine(Ex); } finally { if (TopLevelControl != null) ((frmMain)TopLevelControl).LeaveWaitMode(); } } catch (Exception ex) { Trace.WriteLine(ex); throw; } finally { ho.Dispose(); } }
private void ExecuteQuery(MasterPanelPesquisa MasterPanel) { ToolBar_ButtonClick(this, new ToolBarButtonClickEventArgs(ToolBarButton2)); try { ((frmMain)TopLevelControl).EnterWaitMode(); this.lblFuncao.Text = string.Format("Resultados da pesquisa (em curso)"); this.lblFuncao.Update(); GisaDataSetHelper.HoldOpen ho = new GisaDataSetHelper.HoldOpen(GisaDataSetHelper.GetConnection()); try { resultNumber = 0; bool ShowResults = true; long calc = DateTime.Now.Ticks; try { long user = SessionHelper.GetGisaPrincipal().TrusteeUserOperator.ID; resultNumber = ExecuteSearch(ho.Connection); } catch (Exception ex) { MessageBox.Show("Não foi possível completar a pesquisa solicitada. " + Environment.NewLine + "Erro: " + ex.Message, "Determinação dos resultados de pesquisa", MessageBoxButtons.OK, MessageBoxIcon.Warning); ShowResults = false; Debug.WriteLine(ex); throw; } Debug.WriteLine("<<cálculo da pesquisa>>: " + new TimeSpan(DateTime.Now.Ticks - calc).ToString()); if (ShowResults) { Trace.WriteLine(string.Format("Found {0} results from search server.", resultNumber)); calc = DateTime.Now.Ticks; PesquisaList1.ReloadList(); PesquisaList1.NewSearch = false; resultNumber = PesquisaList1.NrResults; Trace.WriteLine(string.Format("{0} results after filter permissions and expired docs.", resultNumber)); Debug.WriteLine("<<Popular resultados da pesquisa>>: " + new TimeSpan(DateTime.Now.Ticks - calc).ToString()); this.lblFuncao.Text = string.Format("Resultados da pesquisa ({0} {1})", resultNumber, ((resultNumber == 1) ? "descrição" : "descrições")); } else { resultNumber = 0; this.lblFuncao.Text = string.Format("Resultados da pesquisa"); } } catch (Exception ex) { Trace.WriteLine(ex); this.lblFuncao.Text = string.Format("Resultados da pesquisa"); } finally { ho.Dispose(); } } catch (Exception Ex) { Trace.WriteLine(Ex); this.lblFuncao.Text = string.Format("Resultados da pesquisa"); } finally { ((frmMain)TopLevelControl).LeaveWaitMode(); } }
private void SelectionChanged(object sender, EventArgs e) { this.Cursor = Cursors.WaitCursor; if (this.PesquisaList1.GetSelectedRows.Count() > 0) { GISADataset.FRDBaseRow frdRow = null; GisaDataSetHelper.HoldOpen ho = new GisaDataSetHelper.HoldOpen(GisaDataSetHelper.GetConnection()); try { //GISADataset.NivelRow nivelRow = ((GISADataset.FRDBaseRow)e.ItemToBeSelected.Tag).NivelRow; //GISADataset.NivelRow nivelRow = ((GISADataset.FRDBaseRow)_r.Cells[PesquisaDataGrid.COL_FRDBASE].Value).NivelRow; frdRow = (GISADataset.FRDBaseRow)(this.PesquisaList1.SelectedRow); bool nvIsDeleted = PesquisaRule.Current.isNivelDeleted(GisaDataSetHelper.GetInstance(), frdRow.NivelRow.ID, ho.Connection); PesquisaRule.Current.LoadRHParentsSelectedResult(GisaDataSetHelper.GetInstance(), frdRow.NivelRow.ID, ho.Connection); if (!nvIsDeleted) { panelInfoEPs1.ClearAll(); panelInfoEPs1.BuildTree(frdRow.NivelRow, ho.Connection); } else MessageBox.Show("O elemento selecionado foi apagado por outro utilizador." + System.Environment.NewLine + "Por esse motivo não é possível apresentar qualquer detalhe sobre esse elemento", "Seleção de resultados da pesquisa", MessageBoxButtons.OK, MessageBoxIcon.Warning); } catch (Exception ex) { Trace.WriteLine(ex); throw; } finally { ho.Dispose(); } UpdateToolBarButtons(frdRow.NivelRow); } else { panelInfoEPs1.ClearAll(); UpdateToolBarButtons(); } this.Cursor = Cursors.Default; }
private static string GetDesignacaoInDataSet(GISADataset.NivelRow Nivel) { bool nivelOrganico = isNivelOrganico(Nivel); GisaDataSetHelper.HoldOpen ho = null; if (! nivelOrganico) { if (Nivel.GetNivelDesignadoRows().Length == 0) { ho = new GisaDataSetHelper.HoldOpen(GisaDataSetHelper.GetConnection()); try { NivelRule.Current.FillNivelDesignado(GisaDataSetHelper.GetInstance(), Nivel.ID, ho.Connection); } catch (Exception ex) { Trace.WriteLine(ex); throw; } finally { ho.Dispose(); } } Debug.Assert(Nivel.GetNivelDesignadoRows().Length > 0); return Nivel.GetNivelDesignadoRows()[0].Designacao; } if (nivelOrganico) { if (Nivel.GetNivelControloAutRows().Length == 0 || Nivel.GetNivelControloAutRows()[0].ControloAutRow.GetControloAutDicionarioRows().Length == 0) { ho = new GisaDataSetHelper.HoldOpen(GisaDataSetHelper.GetConnection()); try { NivelRule.Current.FillNivelControloAutRows(GisaDataSetHelper.GetInstance(), Nivel.ID, ho.Connection); } catch (Exception ex) { Trace.WriteLine(ex); throw; } finally { ho.Dispose(); } } Debug.Assert(Nivel.GetNivelControloAutRows().Length > 0); Debug.Assert(Nivel.GetNivelControloAutRows()[0].ControloAutRow.GetControloAutDicionarioRows().Length > 0); foreach (GISADataset.ControloAutDicionarioRow cad in Nivel.GetNivelControloAutRows()[0].ControloAutRow.GetControloAutDicionarioRows()) { if (cad.IDTipoControloAutForma == (long)TipoControloAutForma.FormaAutorizada) { return cad.DicionarioRow.Termo; } } } #if (DEBUG) Debug.WriteLine("Nivel ID=", Nivel.ID.ToString()); Debug.WriteLine("Nivel IDTipoNivel=", Nivel.IDTipoNivel.ToString()); throw new ArgumentException("details not found in Nivel.Table.DataSet", "Nivel"); #else { Console.WriteLine("details not found in Nivel.Table.DataSet / Tipo=" + Nivel.IDTipoNivel.ToString()); return ""; } #endif }
private void acceptAssociation(GISADataset.NivelRow nRow, string codigoCompleto) { // validar a associação: só se pode associar um nível que pertença à mesma entidade detentadora da unidade física //ArrayList entidadesDetentoras = new ArrayList(); //GisaDataSetHelper.HoldOpen ho = new GisaDataSetHelper.HoldOpen(GisaDataSetHelper.GetConnection()); //try //{ // entidadesDetentoras = DBAbstractDataLayer.DataAccessRules.UFRule.Current.GetEntidadeDetentoraForNivel(nRow.ID, ho.Connection); //} //catch (Exception ex) //{ // Trace.WriteLine(ex); // throw; //} //finally //{ // ho.Dispose(); //} //if (! (entidadesDetentoras.Contains(CurrentNivel.GetRelacaoHierarquicaRowsByNivelRelacaoHierarquica()[0].IDUpper))) //{ // MessageBox.Show("Não é permitido associar uma unidade de descrição de uma " + System.Environment.NewLine + "entidade detentora diferente da unidade física seleccionada.", "Adicionar Unidades de Descrição", MessageBoxButtons.OK, MessageBoxIcon.Warning); // return; //} // aceitar o drop apenas se se tratar de um Nivel ainda não associado if (nRow.GetFRDBaseRows().Length > 0) { GISADataset.SFRDUnidadeFisicaRow[] frdufRows = (GISADataset.SFRDUnidadeFisicaRow[])(GisaDataSetHelper.GetInstance().SFRDUnidadeFisica.Select(string.Format("IDFRDBase={0} AND IDNivel={1}", nRow.GetFRDBaseRows()[0].ID, CurrentNivel.ID), "", DataViewRowState.Deleted)); if (frdufRows.Length > 0) { frdufRows[0].RejectChanges(); AddDetalhe(nRow, nCod); ListViewItem item = PopulateAssociacao(frdufRows[0]); lstVwNiveisAssoc.Items.Insert(0, item); item.EnsureVisible(); } else { if (GisaDataSetHelper.GetInstance().SFRDUnidadeFisica.Select(string.Format("IDFRDBase={0} AND IDNivel={1}", nRow.GetFRDBaseRows()[0].ID, CurrentNivel.ID)).Length == 0) { GISADataset.SFRDUnidadeFisicaRow frdufRow = null; frdufRow = AssociaNivel(nRow); AddDetalhe(nRow, nCod); ordem.Insert(0, frdufRow.IDFRDBase); ListViewItem item = PopulateAssociacao(frdufRow); lstVwNiveisAssoc.Items.Insert(0, item); item.EnsureVisible(); } } } else { var ho = new GisaDataSetHelper.HoldOpen(GisaDataSetHelper.GetConnection()); try { FRDRule.Current.LoadFRD(GisaDataSetHelper.GetInstance(), nRow.ID, ho.Connection); } catch (Exception ex) { Trace.WriteLine(ex); throw; } finally { ho.Dispose(); } if (nRow.GetFRDBaseRows().Length > 0 && nRow.GetFRDBaseRows()[0].isDeleted == 1) MessageBox.Show("O nível selecionado foi apagado por outro utilizador " + System.Environment.NewLine + "motivo pelo qual não é possível terminar a associação", "Unidades de Descrição", MessageBoxButtons.OK, MessageBoxIcon.Warning); else { if (nRow.GetFRDBaseRows().Length == 0) { // Criar uma nova FRD para o nível em questão. GISADataset.FRDBaseRow frdRow = GisaDataSetHelper.GetInstance().FRDBase.NewFRDBaseRow(); frdRow.NivelRow = nRow; frdRow.TipoFRDBaseRow = (GISADataset.TipoFRDBaseRow)(GisaDataSetHelper.GetInstance().TipoFRDBase.Select(string.Format("ID={0:d}", TipoFRDBase.FRDOIRecolha))[0]); frdRow.NotaDoArquivista = string.Empty; frdRow.RegrasOuConvencoes = string.Empty; GisaDataSetHelper.GetInstance().FRDBase.AddFRDBaseRow(frdRow); } GISADataset.SFRDUnidadeFisicaRow frdufRow = null; frdufRow = AssociaNivel(nRow); AddDetalhe(nRow, codigoCompleto); ordem.Insert(0, frdufRow.IDFRDBase); ListViewItem item = PopulateAssociacao(frdufRow); lstVwNiveisAssoc.Items.Insert(0, item); item.EnsureVisible(); } } }
private void ToolBar_ButtonClick(object sender, System.Windows.Forms.ToolBarButtonClickEventArgs e) { this.Cursor = Cursors.WaitCursor; if (! (e.Button == ToolBarButtonReports)) { foreach (ToolBarButton b in ToolBar.Buttons) { if (b.Style == ToolBarButtonStyle.ToggleButton) b.Pushed = e.Button == b; } } //Antes de permitir a visualização de qualquer informação acerca da Unidade Física seleccionada //é necessário garantir que esta ainda não foi apagada por algum utilizador bool nvIsDeleted = false; if (PesquisaList1.GetSelectedRows.Count() > 0) { GisaDataSetHelper.HoldOpen ho = new GisaDataSetHelper.HoldOpen(GisaDataSetHelper.GetConnection()); try { //nvIsDeleted = PesquisaRule.Current.isNivelDeleted(GisaDataSetHelper.GetInstance(), ((GISADataset.FRDBaseRow)(PesquisaList1.SelectedItems[0].Tag)).IDNivel, ho.Connection); nvIsDeleted = PesquisaRule.Current.isNivelDeleted(GisaDataSetHelper.GetInstance(), ((GISADataset.FRDBaseRow)PesquisaList1.SelectedRow).IDNivel, ho.Connection); } catch (Exception ex) { Trace.WriteLine(ex); throw ex; } finally { ho.Dispose(); } } if (! nvIsDeleted) { // Limpar browser e PDFs temporários controlFedoraPdfViewer.Clear(); ImageHelper.DeleteFilteredFiles("*.pdf"); if (e.Button == ToolBarButton2) ActivateResultados(); else if (e.Button == ToolBarButton3) ActivateDetalhesTexto(); else if (e.Button == ToolBarButton4) ActivateDetalhesImagem(); else if (e.Button == ToolBarButton5) ActivateDetalhesUnidadesFisicas(); else if (e.Button == ToolBarButtonReports) { if (e.Button.DropDownMenu != null && e.Button.DropDownMenu is ContextMenu) ((ContextMenu)e.Button.DropDownMenu).Show(ToolBar, new System.Drawing.Point(e.Button.Rectangle.X, e.Button.Rectangle.Y + e.Button.Rectangle.Height)); } else if (e.Button == ToolBarButton_InfoEPs) ActivateDetalhesEP(); else if (e.Button == ToolBarButtonSDocs) ActivateDetalhesSDocs(); } else { MessageBox.Show("O elemento selecionado foi apagado por outro utilizador." + System.Environment.NewLine + "Por esse motivo não é possível apresentar qualquer detalhe sobre esse elemento", "Seleção de resultados da pesquisa", MessageBoxButtons.OK, MessageBoxIcon.Warning); ToolBar_ButtonClick(this, new ToolBarButtonClickEventArgs(ToolBarButton2)); } this.Cursor = Cursors.Arrow; }
private void DeleteItem() { var lst = lstVwNiveisAssoc.SelectedItems.Cast<ListViewItem>() .Select(lvi => lvi.Tag).Cast<GISADataset.SFRDUnidadeFisicaRow>() .Select(sfrduf => sfrduf.FRDBaseRow.IDNivel).ToList(); GisaDataSetHelper.HoldOpen ho = new GisaDataSetHelper.HoldOpen(GisaDataSetHelper.GetConnection()); try { DBAbstractDataLayer.DataAccessRules.NivelRule.Current.LoadNivelRelacoesHierarquicas(GisaDataSetHelper.GetInstance(), lst, ho.Connection); } catch (Exception ex) { Trace.WriteLine(ex); throw; } finally { ho.Dispose(); } lstVwNiveisAssoc.SelectedItems.Cast<ListViewItem>().ToList() .ForEach(lvi => { var sfrduf = lvi.Tag as GISADataset.SFRDUnidadeFisicaRow; ordem.Remove(sfrduf.IDFRDBase); detalhes.Remove(sfrduf.FRDBaseRow.IDNivel); }); GUIHelper.GUIHelper.deleteSelectedLstVwItems(lstVwNiveisAssoc); UpdateListButtonsState(); }
private string GetTermosIndexados_OutrasFormas(GISADataset.FRDBaseRow FRDBaseRow) { GisaDataSetHelper.HoldOpen ho = new GisaDataSetHelper.HoldOpen(GisaDataSetHelper.GetConnection()); StringBuilder Result = new StringBuilder(); List<PesquisaRule.TermosIndexacao> termosIdx = null; try { termosIdx = PesquisaRule.Current.GetTermosIndexacao(FRDBaseRow.IDNivel, ho.Connection); } finally { ho.Dispose(); } foreach (PesquisaRule.TermosIndexacao termo in termosIdx) { Result.Append(termo.Termo + "\\li128\\par\\li0{}"); if (!termo.Outras_Formas.Equals(string.Empty)) Result.Append(" \\i{}" + termo.Outras_Formas + "\\li128\\par\\li0{}\\i0{}"); } return Result.ToString(); }
private void btnRemoveModelo_Click(object sender, System.EventArgs e) { //não é permitido editar ou eliminar uma lista se algum dos seus modelos estiver a ser usado nalguma avaliação GisaDataSetHelper.HoldOpen ho = new GisaDataSetHelper.HoldOpen(GisaDataSetHelper.GetConnection()); try { bool result = false; GISADataset.ModelosAvaliacaoRow modAvRow = (GISADataset.ModelosAvaliacaoRow)(LstVwModelos.SelectedItems[0].Tag); result = DBAbstractDataLayer.DataAccessRules.NivelRule.Current.ManageModelosAvaliacao(true, modAvRow.ID, null, short.MinValue, false, ho.Connection); if (result) { modAvRow.Delete(); modAvRow.AcceptChanges(); LstVwModelos.Items.Remove(LstVwModelos.SelectedItems[0]); } else { MessageBox.Show("O modelo de avaliação selecionado não pode ser apagado uma vez que já está a ser utilizado na avaliação de níveis documentais.", "Apagar Modelo de Avaliações", MessageBoxButtons.OK, MessageBoxIcon.Warning); } } catch (Exception ex) { Trace.WriteLine(ex); MessageBox.Show("Não foi possível completar a operação. Tente novamente.", "Erro", MessageBoxButtons.OK, MessageBoxIcon.Error); } finally { ho.Dispose(); } }
private string RTFBuilder(long IDNivel) { GisaDataSetHelper.ManageDatasetConstraints(false); GisaDataSetHelper.HoldOpen ho = new GisaDataSetHelper.HoldOpen(GisaDataSetHelper.GetConnection()); try { string filter = string.Format("IDNivel = {0} ", IDNivel); PesquisaRule.Current.LoadSelectedData(GisaDataSetHelper.GetInstance(), IDNivel, Convert.ToInt64(TipoFRDBase.FRDOIRecolha), ho.Connection); DataRow[] frdbaseRows = frdbaseRows = GisaDataSetHelper.GetInstance().FRDBase.Select(filter); if (frdbaseRows.Length > 0) return this.GetFRDBaseAsRTF((GISADataset.FRDBaseRow)(frdbaseRows[0])); return ""; } catch (Exception ex) { Trace.WriteLine(ex); throw; } finally { ho.Dispose(); GisaDataSetHelper.ManageDatasetConstraints(true); } }
public void LoadListData(DataRow dr, bool selectFirstItem) { long loadListDataTime = DateTime.Now.Ticks; Cursor oldCursor = null; try { oldCursor = lstVwPaginated.Cursor; lstVwPaginated.Parent.TopLevelControl.Cursor = Cursors.WaitCursor; try { GisaDataSetHelper.ManageDatasetConstraints(false); lstVwPaginated.BeginUpdate(); bool deadlockOccurred = true; while (deadlockOccurred) { GisaDataSetHelper.HoldOpen ho = new GisaDataSetHelper.HoldOpen(GisaDataSetHelper.GetConnection()); try { long calculate = DateTime.Now.Ticks; CalculateOrderedItems(ho.Connection); Debug.WriteLine("<<CalculateOrderedItems>> total " + new TimeSpan(DateTime.Now.Ticks - calculate).ToString()); // selectedItemTag virá preenchido se se pretender selecionar // um item específico após a população do lista if (dr != null) { int pageNr = GetPageForItemTag(dr, this.ItemsCountLimit, ho.Connection); currentPageNr = pageNr < 1 ? 1 : pageNr; } long count = DateTime.Now.Ticks; pagesCount = CountPages(ItemsCountLimit, out this.TotalElementosCount, ho.Connection); Debug.WriteLine("<<countItems>> total " + new TimeSpan(DateTime.Now.Ticks - count).ToString()); long obterElementos = 0; obterElementos = DateTime.Now.Ticks; GetItems(currentPageNr, ItemsCountLimit, ho.Connection); Debug.WriteLine("<<obterElementos>> total " + new TimeSpan(DateTime.Now.Ticks - obterElementos).ToString()); //limpar long delete = DateTime.Now.Ticks; DeleteTemporaryResults(ho.Connection); Debug.WriteLine("<<DeleteTemporaryResults>> total " + new TimeSpan(DateTime.Now.Ticks - delete).ToString()); deadlockOccurred = false; } catch (Exception ex) { Trace.WriteLine(ex); if (DBAbstractDataLayer.DataAccessRules.ExceptionHelper.isDeadlockException(ex)) deadlockOccurred = true; else throw; } finally { ho.Dispose(); } } long adicionarElementosLista = DateTime.Now.Ticks; AddItemsToList(); Debug.WriteLine("<<adicionarElementosLista>> total " + new TimeSpan(DateTime.Now.Ticks - adicionarElementosLista).ToString()); } catch (Exception ex) { Trace.WriteLine(ex); throw; } finally { lstVwPaginated.EndUpdate(); try { GisaDataSetHelper.ManageDatasetConstraints(true); } catch (ConstraintException ex) { IDbConnection conn = GisaDataSetHelper.GetTempConnection(); conn.Open(); Trace.WriteLine("<EnforceContraints>"); Trace.WriteLine(ex.ToString()); GisaDataSetHelper.FixDataSet(GisaDataSetHelper.GetInstance(), conn); conn.Close(); #if DEBUG throw; #endif } catch (Exception ex) { Trace.WriteLine(ex); throw; } } } finally { lstVwPaginated.Parent.TopLevelControl.Cursor = oldCursor; } refreshNavigationState(); if (lstVwPaginated.Items.Count > 0) { if (dr != null) { // Se, por alguma razão, acontecer o item procurado não // chegar a ser encontrado também não será selecionado // nenhum item lstVwPaginated.selectItem(GUIHelper.GUIHelper.findListViewItemByTag(dr, lstVwPaginated)); } else if (selectFirstItem && lstVwPaginated.Items.Count == 1) lstVwPaginated.selectItem(lstVwPaginated.Items[0]); } Debug.WriteLine("<<LoadListData>> total " + new TimeSpan(DateTime.Now.Ticks - loadListDataTime).ToString()); }
public void LoadData() { currentODSimples = new List <ObjDigSimples>(); docSimplesSemOD = new List <SubDocumento>(); var tnrID = currentNivel.GetRelacaoHierarquicaRowsByNivelRelacaoHierarquica().First().IDTipoNivelRelacionado; // só é considerado válido um contexto definido por um nivel documental if (currentNivel.IDTipoNivel != TipoNivel.DOCUMENTAL) { mContexto = ObjetoDigitalFedoraHelper.Contexto.nenhum; return; } mContexto = IdentifyViewMode(currentNivel); GisaDataSetHelper.HoldOpen ho = new GisaDataSetHelper.HoldOpen(GisaDataSetHelper.GetConnection()); try { GisaDataSetHelper.ManageDatasetConstraints(false); // carregar a informação da bd consuante o tipo nivel selecionado if (tnrID == (long)TipoNivelRelacionado.SD) { var nUpperRow = currentNivel.GetRelacaoHierarquicaRowsByNivelRelacaoHierarquica().Single().NivelRowByNivelRelacaoHierarquicaUpper; DBAbstractDataLayer.DataAccessRules.FedoraRule.Current.LoadObjDigitalData(GisaDataSetHelper.GetInstance(), nUpperRow.ID, nUpperRow.GetRelacaoHierarquicaRowsByNivelRelacaoHierarquica().First().IDTipoNivelRelacionado, ho.Connection); } else { DBAbstractDataLayer.DataAccessRules.FedoraRule.Current.LoadObjDigitalData(GisaDataSetHelper.GetInstance(), currentNivel.ID, tnrID, ho.Connection); } GisaDataSetHelper.ManageDatasetConstraints(true); } catch (Exception e) { // TODO: apanhar a excepção provocada por uma falha com a comunicação com o servidor Trace.WriteLine(e); throw; } finally { ho.Dispose(); } List <string> pidsParaApagar = new List <string>(); // por algum motivo, no repositório, o objeto composto tem na sua estrutura ods simples que já foram apagados var frdRow = currentNivel.GetFRDBaseRows().Single(); var imgRows = new List <GISADataset.SFRDImagemRow>(); imgRows.AddRange(frdRow.GetSFRDImagemRows().Where(r => r.Tipo.Equals(FedoraHelper.typeFedora))); if (imgRows.Count == 0) { if (tnrID == (long)TipoNivelRelacionado.SD) // Identificar, caso exista, o OD Composto no documento/processo do subdocumento { var nUpperRow = currentNivel.GetRelacaoHierarquicaRowsByNivelRelacaoHierarquica().Single().NivelRowByNivelRelacaoHierarquicaUpper; // determinar se o documento/processo tem um OD composto associado var imgRowsUpper = nUpperRow.GetFRDBaseRows().Single().GetSFRDImagemRows().Where(r => r.Tipo.Equals(FedoraHelper.typeFedora)).ToList(); if (imgRowsUpper.Count != 1) { return; // não existe nenhum OD composto para o OD simples associado ao subdocumento } // o documento/processo tem um OD associado. Determinar se esse OD é composto var odRowUpper = imgRowsUpper[0].GetSFRDImagemObjetoDigitalRows().Single().ObjetoDigitalRow; if (odRowUpper.GetObjetoDigitalRelacaoHierarquicaRowsByObjetoDigitalObjetoDigitalRelacaoHierarquicaUpper().Count() > 0) { // o OD é composto currentODComp = SessionHelper.AppConfiguration.GetCurrentAppconfiguration().FedoraHelperSingleton.LoadID(odRowUpper.pid, null) as ObjDigComposto; currentObjetoDigitalRowComp = odRowUpper; if (currentODComp == null) { return; // não se conseguiu obter o OD do servidor... } // clona o próprio e todos os seus simples currentODComp.original = currentODComp.Clone(); } } else if (tnrID == (long)TipoNivelRelacionado.D) // documento/processo sem ODs associados directamente mas com subdocumentos com ODs simples { GetSubDocsImgRows(imgRows); GetODRows(imgRows); } } else if (imgRows.Count == 1) // existe 1 OD associado mas não se sabe se é simples ou composto { var odRow = imgRows[0].GetSFRDImagemObjetoDigitalRows().Single().ObjetoDigitalRow; var od = SessionHelper.AppConfiguration.GetCurrentAppconfiguration().FedoraHelperSingleton.LoadID(odRow.pid, null); if (od == null) { ObjectNotFound(odRow.pid); return; } od.publicado = odRow.Publicado; if (tnrID == (long)TipoNivelRelacionado.SD) // o OD é garantidamente simples { PermissoesHelper.LoadObjDigitalPermissions(currentNivel, SessionHelper.GetGisaPrincipal().TrusteeUserOperator.TrusteeRow); currentObjetoDigitalRow = odRow; currentODSimples = new List <ObjDigSimples>() { od as ObjDigSimples }; var nUpperRow = currentNivel.GetRelacaoHierarquicaRowsByNivelRelacaoHierarquica().Single().NivelRowByNivelRelacaoHierarquicaUpper; // determinar se o documento/processo tem um OD composto associado var imgRowsUpper = nUpperRow.GetFRDBaseRows().Single().GetSFRDImagemRows().Where(r => r.Tipo.Equals(FedoraHelper.typeFedora)).ToList(); if (imgRowsUpper.Count == 1) { // o documento/processo tem um OD associado. Determinar se esse OD é composto var odRowUpper = imgRowsUpper[0].GetSFRDImagemObjetoDigitalRows().Single().ObjetoDigitalRow; if (odRowUpper.GetObjetoDigitalRelacaoHierarquicaRowsByObjetoDigitalObjetoDigitalRelacaoHierarquicaUpper().Count() > 0) { // o OD é composto currentODComp = SessionHelper.AppConfiguration.GetCurrentAppconfiguration().FedoraHelperSingleton.LoadID(odRowUpper.pid, null) as ObjDigComposto; currentObjetoDigitalRowComp = odRowUpper; if (currentODComp == null) { ObjectNotFound(odRowUpper.pid); return; } // não se conseguiu obter o OD do servidor... ((ObjDigSimples)od).parentDocumentTitle = nUpperRow.GetNivelDesignadoRows().Single().Designacao; //currentODComp.publicado = currentObjetoDigitalRowComp.Publicado; currentODComp.objSimples[currentODComp.objSimples.FindIndex(obj => obj.pid == od.pid)] = od as ObjDigSimples; // clona o próprio e todos os seus simples currentODComp.original = currentODComp.Clone(); } } } else if (tnrID == (long)TipoNivelRelacionado.D) // se a UI selecionada for um documento/processo também tem que se ter em conta os OD simples de subdocumentos { if (od.GetType() == typeof(ObjDigSimples)) { currentObjetoDigitalRow = imgRows.Single().GetSFRDImagemObjetoDigitalRows().Single().ObjetoDigitalRow; GetSubDocsImgRows(imgRows); GetODRows(imgRows); } else { currentODComp = od as ObjDigComposto; currentObjetoDigitalRowComp = odRow; currentODComp.objSimples.ForEach(odSimples => { var odSimplesRow = GisaDataSetHelper.GetInstance().ObjetoDigital.Cast <GISADataset.ObjetoDigitalRow>().SingleOrDefault(r => r.pid.Equals(odSimples.pid)); if (odSimplesRow != null) { odSimples.guiorder = odSimplesRow.GUIOrder; odSimples.publicado = odSimplesRow.Publicado; } else if (odSimples.serverState == ServerState.Deleted) { pidsParaApagar.Add(odSimples.pid); } }); if (pidsParaApagar.Count > 0) { FedoraHelper.FixObjetoDigital(ref currentODComp, pidsParaApagar, frdRow, ref currentObjetoDigitalRowComp, ref currentObjetoDigitalRow); } } } else { if (od.GetType() == typeof(ObjDigSimples)) { currentODSimples = new List <ObjDigSimples>() { od as ObjDigSimples }; currentObjetoDigitalRow = odRow; } else { currentODComp = od as ObjDigComposto; currentObjetoDigitalRowComp = odRow; } } od.original = od.Clone(); } else { // caso onde estão associados vários simples soltos e garantidamente a UI selecionada não é um subdocumento (um subdocumento só pode ter um OD simples associado) Trace.Assert(tnrID != (long)TipoNivelRelacionado.SD); GetSubDocsImgRows(imgRows); GetODRows(imgRows); } // preencher o estado publicado nos objetos digitais if (currentODComp != null) { var odRow = default(GISADataset.ObjetoDigitalRow); currentODComp.objSimples.ToList().ForEach(odSimples => { odRow = GisaDataSetHelper.GetInstance().ObjetoDigital.Cast <GISADataset.ObjetoDigitalRow>().SingleOrDefault(r => r.pid.Equals(odSimples.pid)); odSimples.publicado = odRow.Publicado; }); odRow = GisaDataSetHelper.GetInstance().ObjetoDigital.Cast <GISADataset.ObjetoDigitalRow>().Single(r => r.pid.Equals(currentODComp.pid)); currentODComp.publicado = odRow.Publicado; } else { currentODSimples.ToList().ForEach(odSimples => { var odRow = GisaDataSetHelper.GetInstance().ObjetoDigital.Cast <GISADataset.ObjetoDigitalRow>().Single(r => r.pid.Equals(odSimples.pid)); odSimples.publicado = odRow.Publicado; }); } // obter documentos simples sem objeto digital para efeitos de ordenação GetSubDocsSemODs(); }
public void LoadData() { currentODSimples = new List<ObjDigSimples>(); docSimplesSemOD = new List<SubDocumento>(); var tnrID = currentNivel.GetRelacaoHierarquicaRowsByNivelRelacaoHierarquica().First().IDTipoNivelRelacionado; // só é considerado válido um contexto definido por um nivel documental if (currentNivel.IDTipoNivel != TipoNivel.DOCUMENTAL) { mContexto = ObjetoDigitalFedoraHelper.Contexto.nenhum; return; } mContexto = IdentifyViewMode(currentNivel); GisaDataSetHelper.HoldOpen ho = new GisaDataSetHelper.HoldOpen(GisaDataSetHelper.GetConnection()); try { GisaDataSetHelper.ManageDatasetConstraints(false); // carregar a informação da bd consuante o tipo nivel selecionado if (tnrID == (long)TipoNivelRelacionado.SD) { var nUpperRow = currentNivel.GetRelacaoHierarquicaRowsByNivelRelacaoHierarquica().Single().NivelRowByNivelRelacaoHierarquicaUpper; DBAbstractDataLayer.DataAccessRules.FedoraRule.Current.LoadObjDigitalData(GisaDataSetHelper.GetInstance(), nUpperRow.ID, nUpperRow.GetRelacaoHierarquicaRowsByNivelRelacaoHierarquica().First().IDTipoNivelRelacionado, ho.Connection); } else DBAbstractDataLayer.DataAccessRules.FedoraRule.Current.LoadObjDigitalData(GisaDataSetHelper.GetInstance(), currentNivel.ID, tnrID, ho.Connection); GisaDataSetHelper.ManageDatasetConstraints(true); } catch (Exception e) { // TODO: apanhar a excepção provocada por uma falha com a comunicação com o servidor Trace.WriteLine(e); throw; } finally { ho.Dispose(); } List<string> pidsParaApagar = new List<string>(); // por algum motivo, no repositório, o objeto composto tem na sua estrutura ods simples que já foram apagados var frdRow = currentNivel.GetFRDBaseRows().Single(); var imgRows = new List<GISADataset.SFRDImagemRow>(); imgRows.AddRange(frdRow.GetSFRDImagemRows().Where(r => r.Tipo.Equals(FedoraHelper.typeFedora))); if (imgRows.Count == 0) { if (tnrID == (long)TipoNivelRelacionado.SD) // Identificar, caso exista, o OD Composto no documento/processo do subdocumento { var nUpperRow = currentNivel.GetRelacaoHierarquicaRowsByNivelRelacaoHierarquica().Single().NivelRowByNivelRelacaoHierarquicaUpper; // determinar se o documento/processo tem um OD composto associado var imgRowsUpper = nUpperRow.GetFRDBaseRows().Single().GetSFRDImagemRows().Where(r => r.Tipo.Equals(FedoraHelper.typeFedora)).ToList(); if (imgRowsUpper.Count != 1) return; // não existe nenhum OD composto para o OD simples associado ao subdocumento // o documento/processo tem um OD associado. Determinar se esse OD é composto var odRowUpper = imgRowsUpper[0].GetSFRDImagemObjetoDigitalRows().Single().ObjetoDigitalRow; if (odRowUpper.GetObjetoDigitalRelacaoHierarquicaRowsByObjetoDigitalObjetoDigitalRelacaoHierarquicaUpper().Count() > 0) { // o OD é composto currentODComp = SessionHelper.AppConfiguration.GetCurrentAppconfiguration().FedoraHelperSingleton.LoadID(odRowUpper.pid, null) as ObjDigComposto; currentObjetoDigitalRowComp = odRowUpper; if (currentODComp == null) return; // não se conseguiu obter o OD do servidor... // clona o próprio e todos os seus simples currentODComp.original = currentODComp.Clone(); } } else if (tnrID == (long)TipoNivelRelacionado.D) // documento/processo sem ODs associados directamente mas com subdocumentos com ODs simples { GetSubDocsImgRows(imgRows); GetODRows(imgRows); } } else if (imgRows.Count == 1) // existe 1 OD associado mas não se sabe se é simples ou composto { var odRow = imgRows[0].GetSFRDImagemObjetoDigitalRows().Single().ObjetoDigitalRow; var od = SessionHelper.AppConfiguration.GetCurrentAppconfiguration().FedoraHelperSingleton.LoadID(odRow.pid, null); if (od == null) { ObjectNotFound(odRow.pid); return; } od.publicado = odRow.Publicado; if (tnrID == (long)TipoNivelRelacionado.SD) // o OD é garantidamente simples { PermissoesHelper.LoadObjDigitalPermissions(currentNivel, SessionHelper.GetGisaPrincipal().TrusteeUserOperator.TrusteeRow); currentObjetoDigitalRow = odRow; currentODSimples = new List<ObjDigSimples>() { od as ObjDigSimples }; var nUpperRow = currentNivel.GetRelacaoHierarquicaRowsByNivelRelacaoHierarquica().Single().NivelRowByNivelRelacaoHierarquicaUpper; // determinar se o documento/processo tem um OD composto associado var imgRowsUpper = nUpperRow.GetFRDBaseRows().Single().GetSFRDImagemRows().Where(r => r.Tipo.Equals(FedoraHelper.typeFedora)).ToList(); if (imgRowsUpper.Count == 1) { // o documento/processo tem um OD associado. Determinar se esse OD é composto var odRowUpper = imgRowsUpper[0].GetSFRDImagemObjetoDigitalRows().Single().ObjetoDigitalRow; if (odRowUpper.GetObjetoDigitalRelacaoHierarquicaRowsByObjetoDigitalObjetoDigitalRelacaoHierarquicaUpper().Count() > 0) { // o OD é composto currentODComp = SessionHelper.AppConfiguration.GetCurrentAppconfiguration().FedoraHelperSingleton.LoadID(odRowUpper.pid, null) as ObjDigComposto; currentObjetoDigitalRowComp = odRowUpper; if (currentODComp == null) { ObjectNotFound(odRowUpper.pid); return; } // não se conseguiu obter o OD do servidor... ((ObjDigSimples)od).parentDocumentTitle = nUpperRow.GetNivelDesignadoRows().Single().Designacao; //currentODComp.publicado = currentObjetoDigitalRowComp.Publicado; currentODComp.objSimples[currentODComp.objSimples.FindIndex(obj => obj.pid == od.pid)] = od as ObjDigSimples; // clona o próprio e todos os seus simples currentODComp.original = currentODComp.Clone(); } } } else if (tnrID == (long)TipoNivelRelacionado.D) // se a UI selecionada for um documento/processo também tem que se ter em conta os OD simples de subdocumentos { if (od.GetType() == typeof(ObjDigSimples)) { currentObjetoDigitalRow = imgRows.Single().GetSFRDImagemObjetoDigitalRows().Single().ObjetoDigitalRow; GetSubDocsImgRows(imgRows); GetODRows(imgRows); } else { currentODComp = od as ObjDigComposto; currentObjetoDigitalRowComp = odRow; currentODComp.objSimples.ForEach(odSimples => { var odSimplesRow = GisaDataSetHelper.GetInstance().ObjetoDigital.Cast<GISADataset.ObjetoDigitalRow>().SingleOrDefault(r => r.pid.Equals(odSimples.pid)); if (odSimplesRow != null) { odSimples.guiorder = odSimplesRow.GUIOrder; odSimples.publicado = odSimplesRow.Publicado; } else if (odSimples.serverState == ServerState.Deleted) pidsParaApagar.Add(odSimples.pid); }); if (pidsParaApagar.Count > 0) FedoraHelper.FixObjetoDigital(ref currentODComp, pidsParaApagar, frdRow, ref currentObjetoDigitalRowComp, ref currentObjetoDigitalRow); } } else { if (od.GetType() == typeof(ObjDigSimples)) { currentODSimples = new List<ObjDigSimples>() { od as ObjDigSimples }; currentObjetoDigitalRow = odRow; } else { currentODComp = od as ObjDigComposto; currentObjetoDigitalRowComp = odRow; } } od.original = od.Clone(); } else { // caso onde estão associados vários simples soltos e garantidamente a UI selecionada não é um subdocumento (um subdocumento só pode ter um OD simples associado) Trace.Assert(tnrID != (long)TipoNivelRelacionado.SD); GetSubDocsImgRows(imgRows); GetODRows(imgRows); } // preencher o estado publicado nos objetos digitais if (currentODComp != null) { var odRow = default(GISADataset.ObjetoDigitalRow); currentODComp.objSimples.ToList().ForEach(odSimples => { odRow = GisaDataSetHelper.GetInstance().ObjetoDigital.Cast<GISADataset.ObjetoDigitalRow>().SingleOrDefault(r => r.pid.Equals(odSimples.pid)); odSimples.publicado = odRow.Publicado; }); odRow = GisaDataSetHelper.GetInstance().ObjetoDigital.Cast<GISADataset.ObjetoDigitalRow>().Single(r => r.pid.Equals(currentODComp.pid)); currentODComp.publicado = odRow.Publicado; } else { currentODSimples.ToList().ForEach(odSimples => { var odRow = GisaDataSetHelper.GetInstance().ObjetoDigital.Cast<GISADataset.ObjetoDigitalRow>().Single(r => r.pid.Equals(odSimples.pid)); odSimples.publicado = odRow.Publicado; }); } // obter documentos simples sem objeto digital para efeitos de ordenação GetSubDocsSemODs(); }
public void ActivateDetalhesUnidadesFisicas() { if (PesquisaList1.GetSelectedRows.Count() == 1) { List<UFRule.UFsAssociadas> ufsAssociadas = new List<UFRule.UFsAssociadas>(); string ID = ((GISADataset.FRDBaseRow)PesquisaList1.SelectedRow).ID.ToString(); GisaDataSetHelper.ManageDatasetConstraints(false); long calc = DateTime.Now.Ticks; GisaDataSetHelper.HoldOpen ho = new GisaDataSetHelper.HoldOpen(GisaDataSetHelper.GetConnection()); try { long t1 = DateTime.Now.Ticks; ufsAssociadas = PesquisaRule.Current.LoadDetalhesUF(GisaDataSetHelper.GetInstance(), ID, ho.Connection); Debug.WriteLine("<<t1>>: " + new TimeSpan(DateTime.Now.Ticks - t1).ToString()); } catch (Exception ex) { Trace.WriteLine(ex.ToString()); throw ex; } finally { ho.Dispose(); } GisaDataSetHelper.ManageDatasetConstraints(true); long t2 = DateTime.Now.Ticks; dataGridView1.DataSource = null; dataGridView1.ResetOrder(); UFsRelacionadasDataTable.BeginLoadData(); UFsRelacionadasDataTable.Clear(); foreach (var ufAssociada in ufsAssociadas) { var row = UFsRelacionadasDataTable.NewRow(); row[CODIGO] = ufAssociada.Codigo; row[DESIGNACAO] = ufAssociada.Designacao; row[PRODUCAO] = GISA.Utils.GUIHelper.FormatDate(ufAssociada.DPInicioAno, ufAssociada.DPInicioMes, ufAssociada.DPInicioDia, ufAssociada.DPInicioAtribuida) + " - " + GISA.Utils.GUIHelper.FormatDate(ufAssociada.DPFimAno, ufAssociada.DPFimMes, ufAssociada.DPFimDia, ufAssociada.DPFimAtribuida); row[COTA] = ufAssociada.Cota; row[COTADOCUMETO] = ufAssociada.CotaDocumento; UFsRelacionadasDataTable.Rows.Add(row); } UFsRelacionadasDataTable.EndLoadData(); UFsRelacionadasDataTable.AcceptChanges(); this.dataGridView1.DataSource = UFsRelacionadasDataTable; Debug.WriteLine("<<t2>>: " + new TimeSpan(DateTime.Now.Ticks - t2).ToString()); this.dataGridView1.columnClick_refreshData += _ColumnHeaderMouseClick; this.GroupBox3.Text = string.Format("Unidades físicas agregadas ({0})", dataGridView1.Rows.Count); pnlUnidadesFisicas.BringToFront(); this.btnExportUFs.Enabled = dataGridView1.Rows.Count > 0; Trace.WriteLine("<<ActivateDetalhesUnidadesFisicas>>: " + new TimeSpan(DateTime.Now.Ticks - calc).ToString()); } else { ToolBar_ButtonClick(this, new ToolBarButtonClickEventArgs(ToolBarButton2)); } }