private void DeleteItem() { ListViewItem item = this.lstVwNiveisAssoc.SelectedItems[0]; GISADataset.DocumentosMovimentadosRow dmRow = (GISADataset.DocumentosMovimentadosRow)item.Tag; var args = new PersistencyHelper.ValidateMovimentoDeleteItemPreConcArguments(); args.IDMovimento = dmRow.IDMovimento; args.IDNivel = dmRow.IDNivel; args.CatCode = dmRow.MovimentoRow.CatCode.Equals("REQ") ? "DEV" : "REQ"; dmRow.Delete(); PersistencyHelper.SaveResult successfulSave = PersistencyHelper.save(ValidateMovimentoDelete, args); PersistencyHelper.cleanDeletedData(); if (!args.continueSave) { var message = dmRow.MovimentoRow.CatCode.Equals("REQ") ? "Não é permitido eliminar a associação de documentos a requisições com devolução posterior" : "Não é permitido eliminar a associação de documentos a devoluções com requisições posteriores mas sem devolução"; MessageBox.Show(message, "Eliminar a associação de documento com a requisição/devolução", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } this.lstVwNiveisAssoc.Items.Remove(item); UpdateListButtonsState(); }
private void ClickTbEditar() { FormMovimento frm = new FormMovimento(); frm.Text = "Editar " + this.NomeMovimento; //obter row seleccionada e colocar a informação no form GISADataset.MovimentoRow reqRow = (GISADataset.MovimentoRow)movList.SelectedItems[0].Tag; frm.Entidade = reqRow.MovimentoEntidadeRow; frm.Data = reqRow.Data; frm.CurrentMovimento = reqRow; frm.LoadData(); if (frm.ShowDialog() == DialogResult.OK) { // ler os valores do form e gravá-los reqRow.MovimentoEntidadeRow = frm.Entidade; reqRow.Data = frm.Data; PersistencyHelper.save(); PersistencyHelper.cleanDeletedData(); movList.ReloadList(reqRow); } }
public static void ValidateMovimentoDelete(PersistencyHelper.PreConcArguments args) { var vmdiPsa = args as PersistencyHelper.ValidateMovimentoDeleteItemPreConcArguments; var dmRow = GisaDataSetHelper.GetInstance().DocumentosMovimentados.Cast <GISADataset.DocumentosMovimentadosRow>() .SingleOrDefault(r => r.RowState == DataRowState.Deleted && (long)r["IDNivel", DataRowVersion.Original] == vmdiPsa.IDNivel && (long)r["IDMovimento", DataRowVersion.Original] == vmdiPsa.IDMovimento); // este caso acontece quando a linha está detached (o documento foi adicionado, e antes de ser gravado, foi removido da requisição/devolução) if (dmRow == null) { return; } // não é permitido eliminar a associação de documentos a devoluções com requisições posteriores mas sem devolução // não é permitido eliminar a associação de documentos a requisições com devolução posterior vmdiPsa.continueSave = !DBAbstractDataLayer.DataAccessRules.MovimentoRule.Current.temMovimentosPosteriores(vmdiPsa.IDNivel, vmdiPsa.IDMovimento, vmdiPsa.CatCode, args.tran); if (vmdiPsa.continueSave) { return; } System.Data.DataSet tempgisaBackup2 = vmdiPsa.gisaBackup; PersistencyHelper.BackupRow(ref tempgisaBackup2, dmRow); vmdiPsa.gisaBackup = tempgisaBackup2; dmRow.RejectChanges(); }
private void ClickBtnApagar() { if (MessageBox.Show("Tem a certeza que pretende eliminar o depósito?", "Eliminar depósito", MessageBoxButtons.YesNo) == DialogResult.No) { return; } Trace.WriteLine("A apagar depósito..."); var depItem = depList.SelectedItems[0]; var depRow = depItem.Tag as GISADataset.DepositoRow; if (CurrentContext.Deposito.RowState == DataRowState.Detached) { depList.ClearItemSelection(depItem); } else { var args = new PersistencyHelper.DeleteDepositoPreConcArguments(); args.IDDeposito = depRow.ID; depRow.Delete(); PersistencyHelper.save(DeleteDeposito, args); PersistencyHelper.cleanDeletedData(); } depItem.Remove(); UpdateToolBarButtons(); UpdateContext(); }
public static void verificaCodigosRepetidos(PersistencyHelper.PreConcArguments args) { var pcArgs = (PersistencyHelper.EnsureUniqueCodigoNivelPreConcArguments)args; var rhRow = GisaDataSetHelper.GetInstance().RelacaoHierarquica.Cast <GISADataset.RelacaoHierarquicaRow>().SingleOrDefault(r => r.RowState != DataRowState.Deleted && r.ID == pcArgs.rhRowID && r.IDUpper == pcArgs.rhRowIDUpper); if (rhRow != null) { var codigo = rhRow.NivelRowByNivelRelacaoHierarquica.Codigo; var ID = DBAbstractDataLayer.DataAccessRules.NivelRule.Current.GetIDCodigoRepetido(codigo, rhRow.ID, pcArgs.tran, pcArgs.testOnlyWithinNivel, rhRow.NivelRowByNivelRelacaoHierarquicaUpper.ID); if (ID > long.MinValue) { // erro pcArgs.message = string.Format( "Não foi possível completar a operação uma vez que" + Environment.NewLine + "por debaixo da entidade produtora selecionada" + Environment.NewLine + "o código parcial '{0}' já é utilizado pela unidade " + Environment.NewLine + "informacional com o identificador {1}.", codigo, rhRow.ID); var tempgisaBackup3 = pcArgs.gisaBackup; PersistencyHelper.BackupRow(ref tempgisaBackup3, rhRow); pcArgs.gisaBackup = tempgisaBackup3; rhRow.RejectChanges(); } else { pcArgs.successful = true; } } }
public GISADataset.TrusteeUserRow CreateNewUser() { //adicionar um utilizador sem grupo nem permissões para utilização da aplicação //, com builtinuser = false, com isauhtority = true e com isactive = false GISADataset.TrusteeRow tRow = null; GISADataset.TrusteeUserRow tuRow = null; byte[] Versao = null; try { tRow = GisaDataSetHelper.GetInstance().Trustee.AddTrusteeRow("autor", "", "USR", false, false, true, true, Versao, 0); tuRow = GisaDataSetHelper.GetInstance().TrusteeUser.NewTrusteeUserRow(); tuRow.TrusteeRow = tRow; tuRow.Password = ""; tuRow.FullName = "Novo autor"; tuRow.IsAuthority = true; tuRow["IDTrusteeUserDefaultAuthority"] = DBNull.Value; GisaDataSetHelper.GetInstance().TrusteeUser.AddTrusteeUserRow(tuRow); // TODO: apagar? //GisaDataSetHelper.GetTrusteeDataAdapter.Update(New DataRow() {tRow}) //GisaDataSetHelper.GetTrusteeUserDataAdapter.Update(New DataRow() {tuRow}) PersistencyHelper.save(); PersistencyHelper.cleanDeletedData(); } finally { // TODO: apagar? //ho.Dispose() } return tuRow; }
// garantir que o tipo de quantidade da descrição física existe aquando da sua gravação na BD private void TipoAcondicionamentoIsBeingUsedByOthers(GISA.Model.PersistencyHelper.PreConcArguments args) { GISA.Model.PersistencyHelper.ManageDescFisicasPreConcArguments mcfPca = null; mcfPca = (GISA.Model.PersistencyHelper.ManageDescFisicasPreConcArguments)args; GISADataset.FRDBaseRow frd = (GISADataset.FRDBaseRow)(GisaDataSetHelper.GetInstance().FRDBase.Select("ID=" + mcfPca.frdID.ToString())[0]); ArrayList quantList = mcfPca.quant; int nTQuant = 0; GISADataset.TipoAcondicionamentoRow row = null; try { foreach (long quant in quantList) { row = (GISADataset.TipoAcondicionamentoRow)(GisaDataSetHelper.GetInstance().TipoAcondicionamento.Select("ID=" + quant.ToString(), "", DataViewRowState.Deleted)[0]); nTQuant = FRDRule.Current.CountUFDimensoesAcumuladas(quant, mcfPca.tran); System.Data.DataSet tempgisaBackup1 = mcfPca.gisaBackup; PersistencyHelper.BackupRow(ref tempgisaBackup1, row); mcfPca.gisaBackup = tempgisaBackup1; if (nTQuant > 0) { row.RejectChanges(); mcfPca.aResult = PersistencyHelper.ManageDescFisicasPreConcArguments.ActionResult.quantidadeUsedByOthers; } } } catch (Exception ex) { Trace.WriteLine(ex); throw ex; } }
private void btnAutoEliminacaoManager_Click(object sender, System.EventArgs e) { FormAutoEliminacaoEditor formAutoEditor = new FormAutoEliminacaoEditor(); IDbConnection conn = GisaDataSetHelper.GetConnection(); try { conn.Open(); RelatorioRule.Current.LoadAutosEliminacao(GisaDataSetHelper.GetInstance(), conn); } finally { conn.Close(); } formAutoEditor.LoadData(GisaDataSetHelper.GetInstance().AutoEliminacao.Select(string.Empty, "Designacao"), "Designacao"); formAutoEditor.ShowDialog(); PersistencyHelper.save(); PersistencyHelper.cleanDeletedData(); long selectedAutoEliminacaoID = 0; if (cbAutoEliminacao.SelectedValue == null) { selectedAutoEliminacaoID = long.MinValue; } else { selectedAutoEliminacaoID = (long)cbAutoEliminacao.SelectedValue; } rebindToData(); cbAutoEliminacao.SelectedValue = selectedAutoEliminacaoID; }
public override bool ViewToModel() { // Prever os casos em que estamos num nível sem FRD (EDs ou GAs) ou num nível que acaba de ser eliminado if (CurrentFRDBase != null && !(CurrentFRDBase.RowState == DataRowState.Detached)) { bool successful = base.ViewToModel(); if (!successful) { return(successful); } bool changesMade = PersistencyHelper.hasCurrentDatasetChanges(); if (changesMade) { AddRegistration(CurrentFRDBase, existsModifiedData); } return(successful); } else { return(true); } }
private void btnAdd_Click(object sender, System.EventArgs e) { FormUserGroups form = new FormUserGroups(); byte[] Versao = null; if (form.ShowDialog() == DialogResult.OK) { this.Cursor = Cursors.WaitCursor; GISADataset.TrusteeRow tRow = null; List <long> tRowIDs = new List <long>(); foreach (ListViewItem item in form.lstVwTrustees.SelectedItems) { tRow = (GISADataset.TrusteeRow)item.Tag; // verificar se o utilizador foi anteriormente adicionado ao grupo if (GisaDataSetHelper.GetInstance().UserGroups.Select(string.Format("IDUser={0} AND IDGroup={1}", (CurrentTrusteeRow.GetTrusteeUserRows()[0]).ID.ToString(), (tRow.GetTrusteeGroupRows()[0]).ID.ToString())).Length == 0) { tRowIDs.Add(tRow.ID); GisaDataSetHelper.GetInstance().UserGroups.AddUserGroupsRow(CurrentTrusteeRow.GetTrusteeUserRows()[0], tRow.GetTrusteeGroupRows()[0], Versao, 0); } } PersistencyHelper.save(); PersistencyHelper.cleanDeletedData(); EnumerateMembership(CurrentTrusteeRow); this.Cursor = Cursors.Default; } }
protected override void EditTrustee() { if (lstVwTrustees.SelectedItems.Count == 0) return; ((frmMain)TopLevelControl).EnterWaitMode(); ListViewItem item = null; GISADataset.TrusteeRow truRow = null; item = lstVwTrustees.SelectedItems[0]; truRow = (GISADataset.TrusteeRow)item.Tag; GisaDataSetHelper.HoldOpen ho = new GisaDataSetHelper.HoldOpen(GisaDataSetHelper.GetConnection()); try { if (TrusteeRule.Current.hasRegistos(((GISADataset.TrusteeRow)(lstVwTrustees.SelectedItems[0].Tag)).ID, ho.Connection)) MessageBox.Show("Tenha em conta que alterações no nome de utilizador terá reflexos no registos no sistema.", "Utilizador", MessageBoxButtons.OK, MessageBoxIcon.Information); } catch (Exception ex) { Trace.WriteLine(ex); throw; } finally { ho.Dispose(); } FormCreateTrustee form = new FormCreateTrustee(); form.Text = "Editar utilizador"; form.txtTrusteeName.Text = truRow.Name; switch (form.ShowDialog()) { case DialogResult.OK: PersistencyHelper.EditTrusteePreConcArguments ctpca = new PersistencyHelper.EditTrusteePreConcArguments(); ctpca.truRow = truRow; ctpca.username = form.txtTrusteeName.Text; Trace.WriteLine("A editar utilizador..."); PersistencyHelper.save(EditTrusteeIfUsernameDoesntExist, ctpca); PersistencyHelper.cleanDeletedData(); if (! ctpca.successful) { MessageBox.Show("Este nome já existe atribuído a um utilizador ou grupo, " + Environment.NewLine + "por favor escolha outro nome.", form.Text, MessageBoxButtons.OK, MessageBoxIcon.Warning); UpdateTrustees(null); } else { UpdateTrustees(truRow); UpdateContext(); } UpdateToolBarButtons(); break; case DialogResult.Cancel: break; } ((frmMain)TopLevelControl).LeaveWaitMode(); }
public static void CascadeDeleteFRD(GISADataset.FRDBaseRow FRDRow) { PersistencyHelper.DeleteIDXPreSaveArguments args = new PersistencyHelper.DeleteIDXPreSaveArguments(); args.ID = FRDRow.ID; DeleteInDataSet(FRDRow); PersistencyHelper.save(new PersistencyHelper.preSaveDelegate(DeleteFRDBaseXInDataBase), args); PersistencyHelper.cleanDeletedData(); }
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(); }
public static PersistencyHelper.SaveResult CascadeDeleteNivel(GISADataset.NivelRow NivelRow) { //DeleteNivelInDataBase(NivelRow) PersistencyHelper.DeleteIDXPreSaveArguments args = new PersistencyHelper.DeleteIDXPreSaveArguments(); args.ID = NivelRow.ID; DeleteInDataSet(NivelRow); // é possível que esta linha não seja já precisa uma vez que o cleandeleteddata seguinte irá limpar do DS de trabalho as linhas que já não existam PersistencyHelper.SaveResult saveSuccess = PersistencyHelper.save(new PersistencyHelper.preSaveDelegate(DeleteNivelXInDataBase), args); PersistencyHelper.cleanDeletedData(); return saveSuccess; }
private void btnSair_Click(object sender, System.EventArgs e) { // TODO: que fazer com o código? //GisaDataSetHelper.GetTrusteeDataAdapter().Update(GisaDataSetHelper.GetInstance().Trustee.Select("", "", DataViewRowState.Added Or DataViewRowState.ModifiedCurrent)) //GisaDataSetHelper.GetTrusteeUserDataAdapter().Update(GisaDataSetHelper.GetInstance().TrusteeUser.Select("", "", DataViewRowState.Added Or DataViewRowState.ModifiedCurrent)) //GisaDataSetHelper.GetUserGroupsDataAdapter().Update(GisaDataSetHelper.GetInstance().UserGroups.Select("", "", DataViewRowState.Added)) PersistencyHelper.save(); PersistencyHelper.cleanDeletedData(); this.Close(); }
protected override void EditTrustee() { if (lstVwTrustees.SelectedItems.Count == 0) return; GisaDataSetHelper.HoldOpen ho = new GisaDataSetHelper.HoldOpen(GisaDataSetHelper.GetConnection()); try { if (TrusteeRule.Current.hasUsers(((GISADataset.TrusteeRow)(lstVwTrustees.SelectedItems[0].Tag)).ID, ho.Connection)) MessageBox.Show("Tenha em conta que o Grupo de Utilizadores a editar já tem Utilizadores associados.", "Utilizador", MessageBoxButtons.OK, MessageBoxIcon.Warning); } catch (Exception ex) { Trace.WriteLine(ex); throw; } finally { ho.Dispose(); } ListViewItem item = null; GISADataset.TrusteeRow truRow = null; item = lstVwTrustees.SelectedItems[0]; truRow = (GISADataset.TrusteeRow)item.Tag; FormCreateTrustee form = new FormCreateTrustee(); form.Text = "Editar grupo de utilizadores"; form.txtTrusteeName.Text = truRow.Name; switch (form.ShowDialog()) { case DialogResult.OK: PersistencyHelper.EditTrusteePreConcArguments etpca = new PersistencyHelper.EditTrusteePreConcArguments(); etpca.truRow = truRow; etpca.username = form.txtTrusteeName.Text; Trace.WriteLine("A editar o grupo de utilizador..."); PersistencyHelper.save(editTrusteeIfUsernameDoesntExist, etpca); PersistencyHelper.cleanDeletedData(); if (! etpca.successful) { MessageBox.Show("Este nome já existe atribuído a um utilizador ou grupo, " + Environment.NewLine + "por favor escolha outro nome.", form.Text, MessageBoxButtons.OK, MessageBoxIcon.Warning); UpdateTrustees(null); } else UpdateTrustees(truRow); break; case DialogResult.Cancel: break; } }
public override PersistencyHelper.SaveResult Save(bool activateOpcaoCancelar) { var IDsToUpdate = GisaDataSetHelper.GetInstance().NivelUnidadeFisica.Cast <GISADataset.NivelUnidadeFisicaRow>().Where(r => r.RowState == DataRowState.Added || r.RowState == DataRowState.Modified).Select(r => r.ID.ToString()).ToList(); var res = PersistencyHelper.save(activateOpcaoCancelar); if (res == PersistencyHelper.SaveResult.successful) { GISA.Search.Updater.updateUnidadeFisica(IDsToUpdate); } return(res); }
public static void DeleteInDataSet(DataRow DeletableRow, bool onlyRemove, DataSet gBackup) { // Parte-se do pressuposto que o nivel a apagar é folha ArrayList open = new ArrayList(); ArrayList closed = new ArrayList(); open.Add(DeletableRow); // open -> rows por expandir // closed -> rows já expandidas while (open.Count > 0) { DataRow current = (DataRow)(open[0]); if (! (closed.Contains(current))) { foreach (DataRelation rel in current.Table.DataSet.Relations) { if (rel.ParentTable == current.Table) { open.AddRange(current.GetChildRows(rel, DataRowVersion.Default)); } } closed.Add(current); open.Remove(current); } } // Remover do dataset todas as linhas encontradas começando pelo fim // de forma a manter a integridade referencial try { for (int i = closed.Count - 1; i >= 0; i--) { DataRow current = (DataRow)(closed[i]); Trace.WriteLine(string.Format("{0}.{1} is Delete'ing DataRow from DataTable {2}", new System.Diagnostics.StackFrame().GetMethod().DeclaringType.FullName, new System.Diagnostics.StackFrame().GetMethod().Name, current.Table.TableName)); if (onlyRemove) { current.Table.Rows.Remove(current); } else { if (gBackup != null) { PersistencyHelper.BackupRow(ref gBackup, current); } current.Delete(); } } } catch (Exception e) { Trace.WriteLine(e.ToString()); } }
public override PersistencyHelper.SaveResult Save(bool activateOpcaoCancelar) { var preTransactionAction = new PreTransactionAction(); var args = new PersistencyHelper.FedoraIngestPreTransactionArguments(); preTransactionAction.args = args; bool ingestSuccess = true; if (controlObjetoDigital1.disableSave) { return(PersistencyHelper.SaveResult.nothingToSave); } preTransactionAction.preTransactionDelegate = delegate(PersistencyHelper.PreTransactionArguments preTransactionArgs) { string msg = null; if (odHelper.currentODComp != null) { ingestSuccess = SessionHelper.AppConfiguration.GetCurrentAppconfiguration().FedoraHelperSingleton.Ingest(odHelper.currentODComp, out msg); } else { odHelper.currentODSimples.ForEach(odSimples => ingestSuccess &= SessionHelper.AppConfiguration.GetCurrentAppconfiguration().FedoraHelperSingleton.Ingest(odSimples, out msg)); } if (ingestSuccess) { odHelper.newObjects.Keys.ToList().ForEach(k => { k.pid = odHelper.newObjects[k].pid; }); } preTransactionArgs.cancelAction = !ingestSuccess; preTransactionArgs.message = msg; }; PersistencyHelper.SaveResult successfulSave = PersistencyHelper.save(preTransactionAction, activateOpcaoCancelar); if (successfulSave != PersistencyHelper.SaveResult.successful && !ingestSuccess) { MessageBox.Show("Ocorreu um erro na ingestão do objeto digital.", "Ingestão", MessageBoxButtons.OK, MessageBoxIcon.Warning); odHelper.newObjects.Clear(); odHelper.mContexto = ObjetoDigitalFedoraHelper.Contexto.nenhum; odHelper.currentODComp = null; odHelper.currentODSimples = null; } else if (successfulSave == PersistencyHelper.SaveResult.successful) { GISA.Search.Updater.updateNivelDocumental(odHelper.currentNivel.ID); } return(successfulSave); }
public override PersistencyHelper.SaveResult Save(bool activateOpcaoCancelar) { List <long> niveisIDs = new List <long>(); foreach (GISADataset.TrusteeNivelPrivilegeRow tnpRow in GisaDataSetHelper.GetInstance().TrusteeNivelPrivilege.Select("", "", DataViewRowState.Added | DataViewRowState.ModifiedOriginal)) { niveisIDs.Add(tnpRow.IDNivel); } PersistencyHelper.SaveResult successfulSave = PersistencyHelper.save(activateOpcaoCancelar); return(successfulSave); }
private void editTrusteeIfUsernameDoesntExist(PersistencyHelper.PreConcArguments args) { PersistencyHelper.EditTrusteePreConcArguments etpca = null; etpca = (PersistencyHelper.EditTrusteePreConcArguments)args; etpca.successful = false; DataSet gisaBackup = etpca.gisaBackup; if (DBAbstractDataLayer.DataAccessRules.TrusteeRule.Current.isValidNewTrustee(etpca.username, etpca.tran)) { PersistencyHelper.BackupRow(ref gisaBackup, etpca.truRow); etpca.truRow.Name = etpca.username; etpca.successful = true; } }
private void ExecuteFilter() { PersistencyHelper.SaveResult successfulSave = PersistencyHelper.save(); PersistencyHelper.cleanDeletedData(); if (successfulSave == PersistencyHelper.SaveResult.unsuccessful) { return; } if (TextFilterDesignacao == string.Empty) { filter.Clear(); GisaDataSetHelper.HoldOpen ho = new GisaDataSetHelper.HoldOpen(GisaDataSetHelper.GetConnection()); try { documentos = MovimentoRule.Current.GetDocumentos(CurrentMovimento.ID, GisaDataSetHelper.GetInstance(), ho.Connection); } catch (Exception ex) { Trace.WriteLine(ex); throw; } finally { ho.Dispose(); } } else { filter.Clear(); GisaDataSetHelper.HoldOpen ho = new GisaDataSetHelper.HoldOpen(GisaDataSetHelper.GetConnection()); try { documentos = MovimentoRule.Current.GetDocumentos(CurrentMovimento.ID, TextFilterDesignacao, GisaDataSetHelper.GetInstance(), ho.Connection); } catch (Exception ex) { Trace.WriteLine(ex); throw; } finally { ho.Dispose(); } } RepopulateDocumentosAssociados(); }
protected override void AddTrustee() { GISADataset.TrusteeRow truRow = null; GISADataset.TrusteeGroupRow grpRow = null; FormCreateTrustee form = new FormCreateTrustee(); form.Text = "Novo grupo de utilizadores"; switch (form.ShowDialog()) { case DialogResult.OK: truRow = GisaDataSetHelper.GetInstance().Trustee.NewTrusteeRow(); truRow.Name = form.txtTrusteeName.Text; truRow.Description = string.Empty; truRow.CatCode = "GRP"; truRow.BuiltInTrustee = false; truRow.IsActive = true; truRow.Versao = new byte[]{}; truRow.isDeleted = 0; grpRow = GisaDataSetHelper.GetInstance().TrusteeGroup.NewTrusteeGroupRow(); grpRow.Versao = new byte[]{}; grpRow.isDeleted = 0; grpRow.TrusteeRow = truRow; GisaDataSetHelper.GetInstance().Trustee.AddTrusteeRow(truRow); GisaDataSetHelper.GetInstance().TrusteeGroup.AddTrusteeGroupRow(grpRow); PersistencyHelper.CreateTrusteePreConcArguments ctpca = new PersistencyHelper.CreateTrusteePreConcArguments(); ctpca.truRowID = truRow.ID; ctpca.grpRowID = grpRow.ID; Trace.WriteLine("A criar o grupo de utilizador..."); PersistencyHelper.SaveResult successfulSave = PersistencyHelper.save(addTrusteeIfUsernameDoesntExist, ctpca); PersistencyHelper.cleanDeletedData(); if (! ctpca.successful) { MessageBox.Show("Este nome já existe atribuído a um utilizador ou grupo, " + Environment.NewLine + "por favor escolha outro nome.", form.Text, MessageBoxButtons.OK, MessageBoxIcon.Warning); UpdateTrustees(null); } else UpdateTrustees(truRow); break; case DialogResult.Cancel: break; } }
private void PersistDepositoChanges(FormHandleDeposito formHandleDeposito, bool editMode) { switch (formHandleDeposito.ShowDialog()) { case DialogResult.OK: ((frmMain)TopLevelControl).EnterWaitMode(); var depRow = default(GISADataset.DepositoRow); if (!editMode) { depRow = GisaDataSetHelper.GetInstance().Deposito.NewDepositoRow(); depRow.Designacao = formHandleDeposito.Designacao; depRow.MetrosLineares = System.Convert.ToDecimal(formHandleDeposito.Metragem); depRow.Versao = new byte[] { }; depRow.isDeleted = 0; GisaDataSetHelper.GetInstance().Deposito.AddDepositoRow(depRow); Trace.WriteLine("A criar depósito..."); } else { depRow = CurrentContext.Deposito; depRow.Designacao = formHandleDeposito.Designacao; depRow.MetrosLineares = System.Convert.ToDecimal(formHandleDeposito.Metragem); Trace.WriteLine("A editar depósito..."); } var saveResult = PersistencyHelper.save(); PersistencyHelper.cleanDeletedData(); if (saveResult == PersistencyHelper.SaveResult.successful) { depList.AddItem(depRow); } else { // ToDo: já existe um depósito com essa designação } ((frmMain)TopLevelControl).LeaveWaitMode(); break; case DialogResult.Cancel: break; } }
private void ClickTbEliminar() { // obter a row selecciona e apresentar uma messagebox a perguntar se o utilizador quer realmente apagar a requisição if (MessageBox.Show("Tem a certeza que deseja eliminar a " + this.NomeMovimento + " selecionada?", "Eliminação de " + this.NomeMovimento, MessageBoxButtons.OKCancel, MessageBoxIcon.Question) == DialogResult.Cancel) { return; } // Dúvida: deve ser permitido apagar requisições com documentos associados? ListViewItem movItem = null; GISADataset.MovimentoRow movRow = null; movItem = movList.SelectedItems[0]; movRow = (GISADataset.MovimentoRow)movItem.Tag; if (movRow.RowState == DataRowState.Detached) { movList.ClearItemSelection(movItem); } else { var args = new PersistencyHelper.DeleteMovimentoPreConcArguments(); args.CatCode = movRow.CatCode.Equals("REQ") ? "DEV" : "REQ"; args.IDMovimento = movRow.ID; movRow.Delete(); PersistencyHelper.save(DeleteMovimento, args); PersistencyHelper.cleanDeletedData(); if (!args.continueSave) { var message = movRow.CatCode.Equals("REQ") ? "Não é permitido eliminar requisições de documentos devolvidos posteriormente" : "Não é permitido eliminar devoluções com requisições posteriores (sem devolução) dos mesmos documentos"; MessageBox.Show(message, "Eliminar " + this.NomeMovimento, MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } } movItem.Remove(); UpdateToolBarButtons(); UpdateContext(); }
//metodo responsavel por eliminar todos os termos de um CA que não estejam a ser utilizados por outros public static void deleteCAXTermos(PersistencyHelper.PreConcArguments args) { long caRowID = ((PersistencyHelper.DeleteCAXPreConcArguments)args).caRowID; string catCode = ((PersistencyHelper.DeleteCAXPreConcArguments)args).catCode; DataSet gisaBackup = ((PersistencyHelper.DeleteCAXPreConcArguments)args).gisaBackup; foreach (GISADataset.DicionarioRow drow in ((PersistencyHelper.DeleteCAXPreConcArguments)args).termos) { //Nota: é necessário verificar se o estado de drow é deleted pelo facto de ser possivel, numa situação de concorência //entre clientes oracle (só neste tipo de clientes é que esta situação se verificou) que obriga a re-executar a transacção; //apesar de existir um método que repõe os valores originais, este só é executado após todos os delegates PreConc o que //neste caso concreto vai apagar as datarows da tabela Dicionario if (! (DiplomaModeloRule.Current.isTermoUsedByOthers(caRowID, catCode, drow.Termo, true, args.tran))) { PersistencyHelper.BackupRow(ref gisaBackup, drow); drow.Delete(); } } }
private void btnOk_Click(object sender, System.EventArgs e) { GISADataset.TrusteeUserRow lastTrusteeUserRowParent = SessionHelper.GetGisaPrincipal().TrusteeUserAuthor; if (ControloAutores1.SelectedAutor != null && ((GISADataset.TrusteeRow)ControloAutores1.SelectedAutor).GetTrusteeUserRows().Length > 0) { SessionHelper.GetGisaPrincipal().TrusteeUserAuthor = ((GISADataset.TrusteeRow)ControloAutores1.SelectedAutor).GetTrusteeUserRows()[0]; SessionHelper.GetGisaPrincipal().TrusteeUserOperator.TrusteeUserRowParent = SessionHelper.GetGisaPrincipal().TrusteeUserAuthor; } else { SessionHelper.GetGisaPrincipal().TrusteeUserAuthor = null; //DirectCast(ControloAutores1.cbAutor.Items(0), GISADataset.TrusteeRow) SessionHelper.GetGisaPrincipal().TrusteeUserOperator["IDTrusteeUserDefaultAuthority"] = DBNull.Value; } PersistencyHelper.SaveResult successfulSave = PersistencyHelper.save(); PersistencyHelper.cleanDeletedData(); SessionHelper.GetGisaPrincipal().TrusteeUserAuthor = SessionHelper.GetGisaPrincipal().TrusteeUserOperator.TrusteeUserRowParent; }
public static void EnsureNivelUpperExists(PersistencyHelper.PreConcArguments args) { PersistencyHelper.VerifyIfRHNivelUpperExistsPreConcArguments pcArgs = null; pcArgs = (PersistencyHelper.VerifyIfRHNivelUpperExistsPreConcArguments)args; GISADataset.NivelRow nRow = (GISADataset.NivelRow)(GisaDataSetHelper.GetInstance().Nivel.Select("ID=" + pcArgs.nRowID.ToString())[0]); long rhRowIDUpper = nRow.GetRelacaoHierarquicaRowsByNivelRelacaoHierarquica()[0].IDUpper; if (rhRowIDUpper < 0) { pcArgs.RHNivelUpperExists = true; } else { // antes de obter o código verificar se adição de um novo nível ainda é possível (por razões de concorrência) pcArgs.RHNivelUpperExists = NivelRule.Current.isNivelDeleted(rhRowIDUpper, args.tran); } if (!pcArgs.RHNivelUpperExists) { GISADataset.RelacaoHierarquicaRow rhRow = (GISADataset.RelacaoHierarquicaRow)(GisaDataSetHelper.GetInstance().RelacaoHierarquica.Select(string.Format("ID={0} AND IDUpper={1}", pcArgs.rhRowID, pcArgs.rhRowIDUpper))[0]); GISADataset.NivelDesignadoRow ndRow = (GISADataset.NivelDesignadoRow)(GisaDataSetHelper.GetInstance().NivelDesignado.Select("ID=" + pcArgs.ndRowID.ToString())[0]); GISADataset.FRDBaseRow frdBaseRow = (GISADataset.FRDBaseRow)(GisaDataSetHelper.GetInstance().FRDBase.Select("ID=" + pcArgs.frdBaseID.ToString())[0]); System.Data.DataSet tempgisaBackup1 = pcArgs.gisaBackup; PersistencyHelper.BackupRow(ref tempgisaBackup1, rhRow); pcArgs.gisaBackup = tempgisaBackup1; rhRow.RejectChanges(); System.Data.DataSet tempgisaBackup2 = pcArgs.gisaBackup; PersistencyHelper.BackupRow(ref tempgisaBackup2, ndRow); pcArgs.gisaBackup = tempgisaBackup2; ndRow.RejectChanges(); System.Data.DataSet tempgisaBackup3 = pcArgs.gisaBackup; PersistencyHelper.BackupRow(ref tempgisaBackup3, nRow); pcArgs.gisaBackup = tempgisaBackup3; nRow.RejectChanges(); System.Data.DataSet tempgisaBackup4 = pcArgs.gisaBackup; PersistencyHelper.BackupRow(ref tempgisaBackup4, frdBaseRow); pcArgs.gisaBackup = tempgisaBackup4; frdBaseRow.RejectChanges(); pcArgs.message = "Não foi possível criar a unidade informacional uma" + Environment.NewLine + "vez que a unidade superior foi apagada por outro utilizador."; } }
public static void DeleteMovimento(PersistencyHelper.PreConcArguments args) { var dmPca = args as PersistencyHelper.DeleteMovimentoPreConcArguments; var dmRow = GisaDataSetHelper.GetInstance().Movimento.Cast <GISADataset.MovimentoRow>() .Single(r => r.RowState == DataRowState.Deleted && (long)r["ID", DataRowVersion.Original] == dmPca.IDMovimento); // Não é permitido eliminar requisições de documentos devolvidos posteriormente nem eliminar devoluções // com requisições posteriores (sem devolução) dos mesmos documentos dmPca.continueSave = !DBAbstractDataLayer.DataAccessRules.MovimentoRule.Current.CanDeleteMovimento(dmPca.IDMovimento, dmPca.CatCode, args.tran); if (dmPca.continueSave) { return; } System.Data.DataSet tempgisaBackup2 = dmPca.gisaBackup; PersistencyHelper.BackupRow(ref tempgisaBackup2, dmRow); dmPca.gisaBackup = tempgisaBackup2; dmRow.RejectChanges(); }
private void DeleteItems() { this.Cursor = Cursors.WaitCursor; if (((DataRow)(lvMembers.SelectedItems[0].Tag)).RowState == DataRowState.Detached) { ListViewItem item = lvMembers.SelectedItems[0]; lvMembers.SelectedItems.Clear(); lvMembers.Items.Remove(item); } else { GUIHelper.GUIHelper.deleteSelectedLstVwItems(lvMembers); PersistencyHelper.save(); PersistencyHelper.cleanDeletedData(); } MultiPanel.Recontextualize(); this.Cursor = Cursors.Default; }