public override void Deactivate() { CurrentFRDBase = null; CurrentSFRDAvaliacao = null; GUIHelper.GUIHelper.clearField(lvwDocumentos); updateResultsTimer.Stop(); RemoveHandlers(); DestinoFinalAgregado = -2; PublicacaoAgregada = -2; AutoEliminacaoAgregado = Convert.ToInt64(AgregacaoAEResult.SemSeleccao); grpDocumentos.Text = "Documentos"; GUIHelper.GUIHelper.clearField(lvwUnidadesFisicas); grpUnidadesFisicas.Text = "Unidades físicas"; cbDestinoFinal.DataSource = null; GUIHelper.GUIHelper.clearField(cbDestinoFinal); GUIHelper.GUIHelper.clearField(chkPublicar); btnAnterior_Click(this, new System.EventArgs()); GUIHelper.GUIHelper.clearField(lvwSeleccaoUnidadesFisicas); ControlAutoEliminacao1.cbAutoEliminacao.DataSource = null; GUIHelper.GUIHelper.clearField(ControlAutoEliminacao1.cbAutoEliminacao); if (DocumentosAssociados != null) DocumentosAssociados.Clear(); if (UnidadesFisicasAssociadas != null) UnidadesFisicasAssociadas.Clear(); if (lvItemsDocumentos != null) lvItemsDocumentos.Clear(); if (UfsDocsAssoc != null) UfsDocsAssoc.Clear(); if (UfsSeriesAssoc != null) UfsSeriesAssoc.Clear(); if (AvaliacaoDocs != null) AvaliacaoDocs.Clear(); }
public override PersistencyHelper.SaveResult Save(bool activateOpcaoCancelar) { if (this.CurrentFRDBase == null) { return(PersistencyHelper.SaveResult.unsuccessful); } List <long> IDs = new List <long>(); List <string> idsToUpdate = new List <string>(); List <NivelRule.PublicacaoDocumentos> DocsID = new List <NivelRule.PublicacaoDocumentos> (); GISADataset.RelacaoHierarquicaRow rhRow = null; PersistencyHelper.SaveResult successfulSave = PersistencyHelper.SaveResult.unsuccessful; if ((CurrentFRDBase.NivelRow.GetRelacaoHierarquicaRowsByNivelRelacaoHierarquica().Length > 0)) { rhRow = CurrentFRDBase.NivelRow.GetRelacaoHierarquicaRowsByNivelRelacaoHierarquica()[0]; PersistencyHelper.PublishSubDocumentosPreSaveArguments psArgs1 = new PersistencyHelper.PublishSubDocumentosPreSaveArguments(); PersistencyHelper.AvaliaDocumentosTabelaPreSaveArguments psArgs2 = new PersistencyHelper.AvaliaDocumentosTabelaPreSaveArguments(); // publicação de subdocumentos baseado na publicação dos documentos respectivos if (rhRow.IDTipoNivelRelacionado == TipoNivelRelacionado.D) { //contexto é um documento if (CurrentFRDBase.GetSFRDAvaliacaoRows().Length > 0) { GISADataset.SFRDAvaliacaoRow relRow = CurrentFRDBase.GetSFRDAvaliacaoRows()[0]; if ((relRow.RowState == DataRowState.Added && relRow.Publicar) || relRow.RowState == DataRowState.Modified) { DocsID.Add(new DBAbstractDataLayer.DataAccessRules.NivelRule.PublicacaoDocumentos(CurrentFRDBase.NivelRow.ID, CurrentFRDBase.GetSFRDAvaliacaoRows()[0].Publicar)); IDs.Add(CurrentFRDBase.NivelRow.ID); PermissoesHelper.ChangeDocPermissionPublicados(CurrentFRDBase.NivelRow.ID, (CurrentFRDBase.GetSFRDAvaliacaoRows())[0].Publicar); } } } else if (rhRow.IDTipoNivelRelacionado == TipoNivelRelacionado.SR || rhRow.IDTipoNivelRelacionado == TipoNivelRelacionado.SSR) { //o contexto é uma série ou subsérie e é alterado o estado de publicação de vários documentos simultaneamente foreach (GISADataset.SFRDAvaliacaoRow sfrdAv in GisaDataSetHelper.GetInstance().SFRDAvaliacao.Select("", "", DataViewRowState.Added | DataViewRowState.ModifiedCurrent)) { if (sfrdAv.FRDBaseRow.ID != CurrentFRDBase.ID) { DocsID.Add(new DBAbstractDataLayer.DataAccessRules.NivelRule.PublicacaoDocumentos(sfrdAv.FRDBaseRow.NivelRow.ID, sfrdAv.Publicar)); IDs.Add(sfrdAv.FRDBaseRow.NivelRow.ID); PermissoesHelper.ChangeDocPermissionPublicados(sfrdAv.FRDBaseRow.NivelRow.ID, sfrdAv.Publicar); } else { IDs.Add(sfrdAv.FRDBaseRow.IDNivel); } } if (!(CurrentFRDBase.GetSFRDAvaliacaoRows().Length == 0 || CurrentFRDBase.GetSFRDAvaliacaoRows()[0].IsIDModeloAvaliacaoNull() || (!(CurrentFRDBase.GetSFRDAvaliacaoRows()[0].RowState == DataRowState.Added) && !(CurrentFRDBase.GetSFRDAvaliacaoRows()[0]["IDModeloAvaliacao", DataRowVersion.Original] == DBNull.Value) && ((long)(CurrentFRDBase.GetSFRDAvaliacaoRows()[0]["IDModeloAvaliacao", DataRowVersion.Original])) == (long)(CurrentFRDBase.GetSFRDAvaliacaoRows()[0]["IDModeloAvaliacao", DataRowVersion.Current])))) { psArgs2.frdID = CurrentFRDBase.ID; psArgs2.modeloAvaliacaoID = CurrentFRDBase.GetSFRDAvaliacaoRows()[0].IDModeloAvaliacao; psArgs2.avaliacaoTabela = CurrentFRDBase.GetSFRDAvaliacaoRows()[0].AvaliacaoTabela; if (CurrentFRDBase.GetSFRDAvaliacaoRows()[0].IsPrazoConservacaoNull()) { psArgs2.prazoConservacao = 0; } else { psArgs2.prazoConservacao = CurrentFRDBase.GetSFRDAvaliacaoRows()[0].PrazoConservacao; } psArgs2.preservar = CurrentFRDBase.GetSFRDAvaliacaoRows()[0].Preservar; } } else { foreach (GISADataset.SFRDAvaliacaoRow sfrdAv in GisaDataSetHelper.GetInstance().SFRDAvaliacao.Select("", "", DataViewRowState.Added | DataViewRowState.ModifiedCurrent)) { PermissoesHelper.ChangeDocPermissionPublicados(sfrdAv.FRDBaseRow.NivelRow.ID, sfrdAv.Publicar); IDs.Add(sfrdAv.FRDBaseRow.IDNivel); } } // actualização do objecto digital caso exista ou o módulo esteja activo rhRow = CurrentFRDBase.NivelRow.GetRelacaoHierarquicaRowsByNivelRelacaoHierarquica().First(); var objDigital = default(ObjDigital); if (rhRow.IDTipoNivelRelacionado >= (long)TipoNivelRelacionado.D && SessionHelper.AppConfiguration.GetCurrentAppconfiguration().IsFedoraEnable()) { GisaDataSetHelper.HoldOpen ho = new GisaDataSetHelper.HoldOpen(GisaDataSetHelper.GetConnection()); try { GisaDataSetHelper.ManageDatasetConstraints(false); if (!PanelAmbitoConteudo1.IsLoaded) { PanelAmbitoConteudo1.LoadData(CurrentFRDBase, ho.Connection); } if (!PanelIndexacao1.IsLoaded) { PanelIndexacao1.LoadData(CurrentFRDBase, ho.Connection); } GisaDataSetHelper.ManageDatasetConstraints(true); } catch (System.Data.ConstraintException Ex) { Trace.WriteLine(Ex); GisaDataSetHelper.FixDataSet(GisaDataSetHelper.GetInstance(), ho.Connection); } catch (Exception e) { Trace.WriteLine(e); throw; } finally { ho.Dispose(); } // verificar alterações na tipologia e indexação var tipologia = string.Empty; var hasNewTip = Nivel.HasTipologiaChanged(CurrentFRDBase, out tipologia); var assuntos = Nivel.HasIndexacaoChanged(CurrentFRDBase); if (hasNewTip || assuntos != null) { objDigital = FedoraHelper.UpdateTipAssuntos(CurrentFRDBase.NivelRow, hasNewTip ? tipologia : null, assuntos); } } // actualizar objecto digital caso exista var preTransactionAction = new PreTransactionAction(); var fedArgs = new PersistencyHelper.FedoraIngestPreTransactionArguments(); preTransactionAction.args = fedArgs; preTransactionAction.preTransactionDelegate = delegate(PersistencyHelper.PreTransactionArguments preTransactionArgs) { var odComp = this.PanelObjetoDigitalFedora1.GetObjDigitalComp(); var odSimples = this.PanelObjetoDigitalFedora1.GetObjDigitalSimples(); bool ingestSuccess = true; string msg = null; if (odComp != null) { ingestSuccess = SessionHelper.AppConfiguration.GetCurrentAppconfiguration().FedoraHelperSingleton.Ingest(odComp, out msg); } else if (odSimples != null && odSimples.Count > 0) { odSimples.ForEach(od => ingestSuccess &= SessionHelper.AppConfiguration.GetCurrentAppconfiguration().FedoraHelperSingleton.Ingest(od, out msg)); } if (ingestSuccess) { this.PanelObjetoDigitalFedora1.odHelper.newObjects.Keys.ToList().ForEach(k => { k.pid = this.PanelObjetoDigitalFedora1.odHelper.newObjects[k].pid; }); } preTransactionArgs.cancelAction = !ingestSuccess; preTransactionArgs.message = msg; }; psArgs1.DocsID = DocsID; PostSaveAction postSaveAction = new PostSaveAction(); PersistencyHelper.UpdatePermissionsPostSaveArguments argsPSAction = new PersistencyHelper.UpdatePermissionsPostSaveArguments(); argsPSAction.NiveisIDs = IDs; argsPSAction.TrusteeID = PermissoesHelper.GrpAcessoPublicados.ID; postSaveAction.args = argsPSAction; postSaveAction.postSaveDelegate = delegate(PersistencyHelper.PostSaveArguments postSaveArgs) { if (!postSaveArgs.cancelAction && argsPSAction.NiveisIDs.Count > 0) { if (psArgs1 != null) { idsToUpdate = psArgs1.idsToUpdate; } } }; PersistencyHelper.AvaliacaoPublicacaoPreSaveArguments args = new PersistencyHelper.AvaliacaoPublicacaoPreSaveArguments(); args.psArgs1 = psArgs1; args.psArgs2 = psArgs2; successfulSave = PersistencyHelper.save(AvaliacaoPublicacao, args, postSaveAction, preTransactionAction, activateOpcaoCancelar); } else { successfulSave = PersistencyHelper.save(); } if (successfulSave == PersistencyHelper.SaveResult.successful) { GisaDataSetHelper.HoldOpen ho = new GisaDataSetHelper.HoldOpen(GisaDataSetHelper.GetConnection()); try { if (CurrentFRDBase.NivelRow.IDTipoNivel == TipoNivel.DOCUMENTAL) { if (idsToUpdate == null) { idsToUpdate = new List <string>(); } idsToUpdate.Add(CurrentFRDBase.NivelRow.ID.ToString()); GISA.Search.Updater.updateNivelDocumental(idsToUpdate); } ((frmMain)TopLevelControl).SetServerStatus(); } catch (GISA.Search.UpdateServerException) { ((frmMain)TopLevelControl).SetServerStatus(); } catch (Exception ex) { Trace.WriteLine(ex.ToString()); throw; } finally { ho.Dispose(); } } return(successfulSave); }
public override void LoadData(DataRow CurrentDataRow, IDbConnection conn) { IsLoaded = false; isInactiveEstruturalPanel = false; CurrentFRDBase = (GISADataset.FRDBaseRow)CurrentDataRow; GISADataset.RelacaoHierarquicaRow rhRow = null; rhRow = CurrentFRDBase.NivelRow.GetRelacaoHierarquicaRowsByNivelRelacaoHierarquica()[0]; // não se carrega a row referente à avaliação do nível selecionado quando existe uma em memória e modificada; nos // casos restantes essa row é carregada ou criada uma nova GISADataset.SFRDAvaliacaoRow[] avaliacaoRows = null; avaliacaoRows = CurrentFRDBase.GetSFRDAvaliacaoRows(); if (avaliacaoRows.Length != 0) { CurrentSFRDAvaliacao = CurrentFRDBase.GetSFRDAvaliacaoRows()[0]; if (CurrentSFRDAvaliacao.RowState == DataRowState.Unchanged) FRDRule.Current.LoadCurrentFRDAvaliacao(GisaDataSetHelper.GetInstance(), CurrentFRDBase.ID, conn); } else { FRDRule.Current.LoadCurrentFRDAvaliacao(GisaDataSetHelper.GetInstance(), CurrentFRDBase.ID, conn); avaliacaoRows = CurrentFRDBase.GetSFRDAvaliacaoRows(); if (avaliacaoRows.Length != 0) CurrentSFRDAvaliacao = CurrentFRDBase.GetSFRDAvaliacaoRows()[0]; else { // Criar um SFRDAvaliação caso não exista ainda CurrentSFRDAvaliacao = GisaDataSetHelper.GetInstance().SFRDAvaliacao.NewSFRDAvaliacaoRow(); CurrentSFRDAvaliacao.FRDBaseRow = CurrentFRDBase; CurrentSFRDAvaliacao.IDPertinencia = 1; CurrentSFRDAvaliacao.IDDensidade = 1; CurrentSFRDAvaliacao.IDSubdensidade = 1; CurrentSFRDAvaliacao.AvaliacaoTabela = false; CurrentSFRDAvaliacao.Publicar = false; GisaDataSetHelper.GetInstance().SFRDAvaliacao.AddSFRDAvaliacaoRow(CurrentSFRDAvaliacao); } } // uma vez que nenhuma informação é apresentada, o booleano IsLoaded continua a false (para o // caso das séries dá jeito porque o estarem avaliadas ou não influencia o facto do painel estar // enabled ou não) if ( rhRow.IDTipoNivelRelacionado != TipoNivelRelacionado.SR && rhRow.IDTipoNivelRelacionado != TipoNivelRelacionado.SSR && rhRow.IDTipoNivelRelacionado != TipoNivelRelacionado.D && rhRow.NivelRowByNivelRelacaoHierarquicaUpper.IDTipoNivel == TipoNivel.ESTRUTURAL ) { grpConteudoPasso1.Enabled = false; grpConteudoPasso2.Enabled = false; btnProximo.Enabled = false; btnAnterior.Enabled = false; return; } else { grpConteudoPasso1.Enabled = true; grpConteudoPasso2.Enabled = true; btnProximo.Enabled = true; btnAnterior.Enabled = true; // no caso do nível documental selecionado ser uma (sub)série, este painel só pode estar activo caso esta // esteja avaliada if ( !((rhRow.IDTipoNivelRelacionado == TipoNivelRelacionado.SR || rhRow.IDTipoNivelRelacionado == TipoNivelRelacionado.SSR ) && !CurrentSFRDAvaliacao.IsPreservarNull()) ) { isInactiveEstruturalPanel = true; GUIHelper.GUIHelper.makeReadOnly(this); return; } } if (CurrentFRDBase.NivelRow.TipoNivelRow.ID == TipoNivel.DOCUMENTAL) { ControlAutoEliminacao1.ContentsEnabled = false; DBAbstractDataLayer.DataAccessRules.NivelRule.Current.GetUfsEDocsAssociados(CurrentFRDBase.NivelRow.ID, SessionHelper.GetGisaPrincipal().TrusteeUserOperator.ID, conn); DocumentosAssociados = DBAbstractDataLayer.DataAccessRules.NivelRule.Current.GetDocsAssoc(); UnidadesFisicasAssociadas = DBAbstractDataLayer.DataAccessRules.NivelRule.Current.GetUfsAssoc(); UfsDocsAssoc = DBAbstractDataLayer.DataAccessRules.NivelRule.Current.GetUfsDocsAssoc(); UfsSeriesAssoc = DBAbstractDataLayer.DataAccessRules.NivelRule.Current.GetUfsSeriesAssoc(); //fazer load de informação necessária cruzada com os resultados nas tabelas temporárias calculadas anteriormente long startTicks = DateTime.Now.Ticks; FRDRule.Current.LoadPanelAvaliacaoDocumentosUnidadesFisicasData(GisaDataSetHelper.GetInstance(), CurrentFRDBase.ID, CurrentFRDBase.NivelRow.ID, Convert.ToInt64(CurrentFRDBase.IDTipoFRDBase), Convert.ToInt64(TipoFRDBase.FRDUnidadeFisica), PermissoesHelper.GrpAcessoPublicados.ID, conn); Debug.WriteLine("<<LoadPanelAvaliacaoDocumentosUnidadesFisicasData>>: " + new TimeSpan(DateTime.Now.Ticks - startTicks).ToString()); GUIHelper.GUIHelper.makeReadable(this); } else { isInactiveEstruturalPanel = true; GUIHelper.GUIHelper.makeReadOnly(this); } IsLoaded = true; }
public override void ModelToView() { IsPopulated = false; GISADataset.SFRDAvaliacaoRow[] avaliacaoRows = null; avaliacaoRows = CurrentFRDBase.GetSFRDAvaliacaoRows(); if (avaliacaoRows.Length != 0) { CurrentSFRDAvaliacao = CurrentFRDBase.GetSFRDAvaliacaoRows()[0]; } else { // Criar um SFRDAvaliação caso não exista ainda CurrentSFRDAvaliacao = GisaDataSetHelper.GetInstance().SFRDAvaliacao. NewSFRDAvaliacaoRow(); CurrentSFRDAvaliacao.FRDBaseRow = CurrentFRDBase; CurrentSFRDAvaliacao.IDPertinencia = 1; CurrentSFRDAvaliacao.IDDensidade = 1; CurrentSFRDAvaliacao.IDSubdensidade = 1; CurrentSFRDAvaliacao.Publicar = false; CurrentSFRDAvaliacao.AvaliacaoTabela = false; GisaDataSetHelper.GetInstance().SFRDAvaliacao.AddSFRDAvaliacaoRow(CurrentSFRDAvaliacao); } cbNivel.DataSource = GisaDataSetHelper.GetInstance().TipoPertinencia; cbNivel.DisplayMember = "Designacao"; try { cbNivel.ValueMember = "ID"; } catch (Exception Ex) { MessageBox.Show(Ex.Message); } cbInforAnaliseTipo.DataSource = GisaDataSetHelper.GetInstance().TipoDensidade; cbInforAnaliseTipo.DisplayMember = "Designacao"; cbInforAnaliseTipo.ValueMember = "ID"; cbInforAnaliseSubTipo.DataSource = GisaDataSetHelper.GetInstance().TipoSubDensidade; cbInforAnaliseSubTipo.DisplayMember = "Designacao"; cbInforAnaliseSubTipo.ValueMember = "ID"; cbFrequenciaUso.DataSource = PonderacoesTable; cbFrequenciaUso.DisplayMember = "Designacao"; cbFrequenciaUso.ValueMember = "ID"; DataTable dt2 = new DataTable(); dt2.Columns.Add("ID", typeof(int)); dt2.Columns.Add("Designacao", typeof(string)); dt2.Rows.Add(new object[] {-1, ""}); dt2.Rows.Add(new object[] {1, "Conservação"}); dt2.Rows.Add(new object[] {0, "Eliminação"}); cbDestinoFinal.DisplayMember = "Designacao"; cbDestinoFinal.ValueMember = "ID"; cbDestinoFinal.DataSource = dt2; PopulateDiploma(); if (CurrentSFRDAvaliacao.IsRefTabelaAvaliacaoNull()) txtRef.Text = string.Empty; else txtRef.Text = CurrentSFRDAvaliacao.RefTabelaAvaliacao.ToString(); GISADataset.RelacaoHierarquicaRow rhRow = null; rhRow = TipoNivelRelacionado.GetPrimeiraRelacaoEncontrada(CurrentFRDBase.NivelRow); // definir estados dos controlos mediante o tipo de avaliação selecionado if (! CurrentSFRDAvaliacao.AvaliacaoTabela) { cbModeloAvaliacao.SelectedValue = -1; chkModeloAvaliacao.Checked = false; EnableChangeAvaliacaoControls(true); //// se o contexto selecionado for um documento que constitua uma série, só é permitido avaliá-lo segundo //// um modelo de avaliação caso a sua série (ou sub-série) esteja igualmente avaliada dessa forma //if (rhRow.IDTipoNivelRelacionado == TipoNivelRelacionado.D && rhRow.NivelRowByNivelRelacaoHierarquicaUpper.IDTipoNivel == TipoNivel.DOCUMENTAL) //{ // GISADataset.SFRDAvaliacaoRow[] parentSFRDAvaliacaoRow = CurrentFRDBase.NivelRow.GetRelacaoHierarquicaRowsByNivelRelacaoHierarquica()[0].NivelRowByNivelRelacaoHierarquicaUpper.GetFRDBaseRows()[0].GetSFRDAvaliacaoRows(); // if (parentSFRDAvaliacaoRow.Length > 0 && parentSFRDAvaliacaoRow[0].AvaliacaoTabela) // chkModeloAvaliacao.Enabled = true; // else // { // // se o caso descrito a cima não se verificar impede-se que o documento possa ser avaliado segundo um // // modelo de avaliação // chkModeloAvaliacao.Enabled = false; // } //} } else { chkModeloAvaliacao.Checked = true; EnableChangeAvaliacaoControls(false); } // popular modelos de avaliação ArrayList modelosAvaliacaoData = new ArrayList(); if (rhRow.IDTipoNivelRelacionado == TipoNivelRelacionado.D && rhRow.NivelRowByNivelRelacaoHierarquicaUpper.IDTipoNivel == TipoNivel.DOCUMENTAL) { //// o contexto selecionado é um documento que constitui uma série //GISADataset.SFRDAvaliacaoRow[] parentSFRDAvaliacaoRow = CurrentFRDBase.NivelRow.GetRelacaoHierarquicaRowsByNivelRelacaoHierarquica()[0].NivelRowByNivelRelacaoHierarquicaUpper.GetFRDBaseRows()[0].GetSFRDAvaliacaoRows(); //if (parentSFRDAvaliacaoRow.Length == 0 || (! CurrentSFRDAvaliacao.AvaliacaoTabela && (! (parentSFRDAvaliacaoRow[0].AvaliacaoTabela) || (parentSFRDAvaliacaoRow[0].AvaliacaoTabela && parentSFRDAvaliacaoRow[0].IsIDModeloAvaliacaoNull())))) //{ // // nem o documento nem a sua série (ou sub-série) estão avaliados por tabelas de avaliação (ou a série ou sub-série // // estão por avaliar mas no modo de avaliação por tabelas); neste caso não é necessário adicionar // // qualquer elemento à cbModeloAvaliacao //} //else if (! CurrentSFRDAvaliacao.AvaliacaoTabela && parentSFRDAvaliacaoRow[0].AvaliacaoTabela && ! (parentSFRDAvaliacaoRow[0].IsIDModeloAvaliacaoNull())) //{ // // o documento não está avaliado segundo uma tabela de avaliação mas a sua série (ou sub-série) está // modelosAvaliacaoData.Add(parentSFRDAvaliacaoRow[0].ModelosAvaliacaoRow); // cbModeloAvaliacao.DataSource = modelosAvaliacaoData; // cbModeloAvaliacao.DisplayMember = "Designacao"; // cbModeloAvaliacao.ValueMember = "ID"; //} //else if (CurrentSFRDAvaliacao.AvaliacaoTabela && (! (parentSFRDAvaliacaoRow[0].AvaliacaoTabela) || (parentSFRDAvaliacaoRow[0].AvaliacaoTabela && parentSFRDAvaliacaoRow[0].IsIDModeloAvaliacaoNull()))) //{ // if (CurrentSFRDAvaliacao.ModelosAvaliacaoRow == null) // { // var ma = (GISADataset.ModelosAvaliacaoRow)(GisaDataSetHelper.GetInstance().ModelosAvaliacao.NewRow()); // ma.ID = -1; // ma.Designacao = ""; // modelosAvaliacaoData.Add(ma); // CurrentSFRDAvaliacao.ModelosAvaliacaoRow = ma; // } // else // modelosAvaliacaoData.Add(CurrentSFRDAvaliacao.ModelosAvaliacaoRow); // originalModeloAvaliacao = CurrentSFRDAvaliacao.ModelosAvaliacaoRow.ID; // cbModeloAvaliacao.SelectedValue = originalModeloAvaliacao; // cbModeloAvaliacao.DataSource = modelosAvaliacaoData; // cbModeloAvaliacao.DisplayMember = "Designacao"; // cbModeloAvaliacao.ValueMember = "ID"; //} //else if (CurrentSFRDAvaliacao.AvaliacaoTabela && parentSFRDAvaliacaoRow[0].AvaliacaoTabela && ! (parentSFRDAvaliacaoRow[0].IsIDModeloAvaliacaoNull())) //{ // // documento avaliado segundo uma tabela de avaliação mais antiga que aquela utilizada na sua série (ou // // sub-série) // if (CurrentSFRDAvaliacao.ModelosAvaliacaoRow == null) // { // var ma = (GISADataset.ModelosAvaliacaoRow)(GisaDataSetHelper.GetInstance().ModelosAvaliacao.NewRow()); // ma.ID = -1; // ma.Designacao = ""; // modelosAvaliacaoData.Add(ma); // CurrentSFRDAvaliacao.ModelosAvaliacaoRow = ma; // } // else // modelosAvaliacaoData.Add(CurrentSFRDAvaliacao.ModelosAvaliacaoRow); // if ((CurrentSFRDAvaliacao.ModelosAvaliacaoRow == null) || (CurrentSFRDAvaliacao.ModelosAvaliacaoRow.ID != parentSFRDAvaliacaoRow[0].ModelosAvaliacaoRow.ID)) // { // modelosAvaliacaoData.Add(parentSFRDAvaliacaoRow[0].ModelosAvaliacaoRow); // originalModeloAvaliacao = parentSFRDAvaliacaoRow[0].ModelosAvaliacaoRow.ID; // } // cbModeloAvaliacao.Enabled = true; // cbDestinoFinal.Enabled = false; // cbModeloAvaliacao.SelectedValue = originalModeloAvaliacao; // cbModeloAvaliacao.DataSource = modelosAvaliacaoData; // cbModeloAvaliacao.DisplayMember = "Designacao"; // cbModeloAvaliacao.ValueMember = "ID"; //} //else // Debug.Assert(false, "Situação não prevista"); } else if (rhRow.IDTipoNivelRelacionado == TipoNivelRelacionado.SD) { // não é necessário adicionar qualquer elemento à combobox devido ao facto de os sub-documentos não // serem alvo de avaliação individual } else { // nos casos restantes (séries, sub-séries e documentos soltos) é necessário adicionar todos os elementos // disponíveis GISADataset.ModelosAvaliacaoRow modAvRow = (GISADataset.ModelosAvaliacaoRow)(GisaDataSetHelper.GetInstance().ModelosAvaliacao.NewRow()); modAvRow.ID = -1; modAvRow.Designacao = ""; modelosAvaliacaoData.Add(modAvRow); long lstModelosID = GetMostRecentList(); if (lstModelosID > 0) { //'Limpar a id -1 //modelosAvaliacaoData.Clear() modelosAvaliacaoData.AddRange(GisaDataSetHelper.GetInstance().ModelosAvaliacao.Select("IDListaModelosAvaliacao=" + lstModelosID.ToString())); } cbModeloAvaliacao.DataSource = modelosAvaliacaoData; cbModeloAvaliacao.DisplayMember = "Designacao"; cbModeloAvaliacao.ValueMember = "ID"; if (CurrentSFRDAvaliacao.IsIDModeloAvaliacaoNull()) originalModeloAvaliacao = -1; else originalModeloAvaliacao = CurrentSFRDAvaliacao.IDModeloAvaliacao; cbModeloAvaliacao.SelectedValue = originalModeloAvaliacao; } chkPublicar.Checked = CurrentSFRDAvaliacao.Publicar; if (! CurrentSFRDAvaliacao.IsObservacoesNull()) txtObservacoes.Text = CurrentSFRDAvaliacao.Observacoes; else txtObservacoes.Text = string.Empty; UpdateLstVwInforRelacionadaButtonsState(); UpdatePanel(); AddHandlersAvaliacao(); IsPopulated = true; }