private void btnEditLista_Click(object sender, System.EventArgs e) { ListViewItem item = LstVwListaModelos.SelectedItems[0]; GISADataset.ListaModelosAvaliacaoRow lstModAvRow = (GISADataset.ListaModelosAvaliacaoRow)item.Tag; FormListaModelosAvaliacao frm = new FormListaModelosAvaliacao(); frm.Text = "Editar " + frm.Text; frm.txtDesignacaoListaModelos.Text = lstModAvRow.Designacao; GUIHelper.GUIHelper.populateData(frm.PxDateBox1, lstModAvRow); switch (frm.ShowDialog()) { case DialogResult.OK: if (! (lstModAvRow.RowState == DataRowState.Added)) { int dResult = (int)DialogResult.OK; if (LstVwListaModelos.Items.Count > 0) { GISADataset.ListaModelosAvaliacaoRow mostRecentLstModAvRow = GetMostRecentList(); if (mostRecentLstModAvRow.DataInicio < GUIHelper.GUIHelper.GetData(frm.PxDateBox1)) { dResult = Convert.ToInt32(MessageBox.Show("Está prestes a alterar a data de início de uma nova lista de modelos de avaliação. Todos as séries e sub-séries avaliadas perderão a avaliacão segundo modelos de avaliação da lista antiga. Pretende continuar?", "Nova Lista de Modelos", MessageBoxButtons.OKCancel, MessageBoxIcon.Warning)); } } GisaDataSetHelper.HoldOpen ho = new GisaDataSetHelper.HoldOpen(GisaDataSetHelper.GetConnection()); try { bool result = false; result = DBAbstractDataLayer.DataAccessRules.NivelRule.Current.ManageListasModelosAvaliacao(false, lstModAvRow.ID, frm.txtDesignacaoListaModelos.Text, GUIHelper.GUIHelper.GetData(frm.PxDateBox1), ho.Connection); if (result) { lstModAvRow.Designacao = frm.txtDesignacaoListaModelos.Text; GUIHelper.GUIHelper.storeData(frm.PxDateBox1, lstModAvRow); UpdateListaModeloItem(item, lstModAvRow); lstModAvRow.AcceptChanges(); } else { MessageBox.Show("A lista de modelos de avaliação selecionada não pode ser alterada uma vez que já está a ser utilizada na avaliação de níveis documentais.", "Editar Lista 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(); } } else { lstModAvRow.Designacao = frm.txtDesignacaoListaModelos.Text; GUIHelper.GUIHelper.storeData(frm.PxDateBox1, lstModAvRow); UpdateListaModeloItem(item, lstModAvRow); } break; case DialogResult.Cancel: return; } }
private void btnAddLista_Click(object sender, System.EventArgs e) { FormListaModelosAvaliacao frm = new FormListaModelosAvaliacao(); frm.Text = "Criar " + frm.Text; switch (frm.ShowDialog()) { case DialogResult.OK: { int dResult = (int)DialogResult.OK; if (LstVwListaModelos.Items.Count > 0) { GISADataset.ListaModelosAvaliacaoRow lstModAvRow = GetMostRecentList(); if (lstModAvRow.DataInicio < GUIHelper.GUIHelper.GetData(frm.PxDateBox1)) { dResult = Convert.ToInt32(MessageBox.Show("Está prestes a criar uma nova lista de modelos de avaliação. Todos as séries e sub-séries avaliadas perderão a avaliacão segundo modelos de avaliação da lista antiga. Pretende continuar?", "Nova Lista de Modelos", MessageBoxButtons.OKCancel, MessageBoxIcon.Warning)); } } if (dResult == (int)DialogResult.OK) { GisaDataSetHelper.HoldOpen ho = new GisaDataSetHelper.HoldOpen(GisaDataSetHelper.GetConnection()); try { DBAbstractDataLayer.DataAccessRules.NivelRule.Current.ClearAvaliacaoTabelaSeries(GUIHelper.GUIHelper.GetData(frm.PxDateBox1), ho.Connection); GISADataset.ListaModelosAvaliacaoRow lstModAvRow = null; lstModAvRow = GisaDataSetHelper.GetInstance().ListaModelosAvaliacao.NewListaModelosAvaliacaoRow(); lstModAvRow.Designacao = frm.txtDesignacaoListaModelos.Text; GUIHelper.GUIHelper.storeData(frm.PxDateBox1, lstModAvRow); lstModAvRow.Versao = new byte[]{}; GisaDataSetHelper.GetInstance().ListaModelosAvaliacao.AddListaModelosAvaliacaoRow(lstModAvRow); ListViewItem item = NewListaModeloItem(lstModAvRow); LstVwListaModelos.Items.Add(item); item.Selected = true; } 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(); } } break; } case DialogResult.Cancel: { return; } } }