public void btnEdit_Click(object sender, System.EventArgs e) { GISADataset.SFRDAvaliacaoRelRow row = null; ListViewItem item = null; try { //Get the selected row item = lstVwInforRelacionada.SelectedItems[0]; row = (GISADataset.SFRDAvaliacaoRelRow)item.Tag; } catch (ArgumentOutOfRangeException) { //If there is no item selected then no item is edited return; } FormComparacao f = new FormComparacao(); f.LoadData(true); f.Text = f.Text + " - Edição"; f.Densidade = row.TipoDensidadeRow; f.SubDensidade = row.TipoSubDensidadeRow; f.Ponderacao = row.Ponderacao; // Utilizar a primeira relação encontrada uma vez que na realidade serão adicionadas todas as relações deste nível. IDbConnection conn = GisaDataSetHelper.GetConnection(); try { conn.Open(); DBAbstractDataLayer.DataAccessRules.NivelRule.Current.LoadNivelParents(row.NivelRow.ID, GisaDataSetHelper.GetInstance(), conn); } finally { conn.Close(); } f.RelacaoHierarquica = row.NivelRow.GetRelacaoHierarquicaRowsByNivelRelacaoHierarquica()[0]; f.cnList.trVwLocalizacao.ExpandAll(); if (f.ShowDialog(this) == System.Windows.Forms.DialogResult.OK) { //Update information in the data row try { row.Densidade = f.Densidade.ID; } catch (Exception) { MessageBox.Show("FIXME: densidade não especificada (!)"); } try { row.SubDensidade = f.SubDensidade.ID; } catch (Exception) { MessageBox.Show("FIXME: subdensidade não especificada (!)"); } row.Ponderacao = f.Ponderacao; //Update information in the list string titulo = row.NivelRow.GetNivelDesignadoRows()[0].Designacao; item.SubItems[0].Text = titulo; item.SubItems[1].Text = row.TipoDensidadeRow.Designacao; item.SubItems[2].Text = row.TipoSubDensidadeRow.Designacao; item.SubItems[3].Text = System.Convert.ToString(row.Ponderacao); } }
private void AddInformacaoRelacionada() { FormComparacao f = new FormComparacao(); f.Text = f.Text + " - Adição"; f.LoadData(false); if (f.ShowDialog(this) == System.Windows.Forms.DialogResult.OK) { GISADataset.SFRDAvaliacaoRelRow newRow = null; newRow = GisaDataSetHelper.GetInstance().SFRDAvaliacaoRel.NewSFRDAvaliacaoRelRow(); newRow.IDFRDBase = CurrentFRDBase.ID; try { newRow.IDNivel = f.RelacaoHierarquica.ID; } catch (Exception) { MessageBox.Show("Nível não especificado (!)"); Trace.WriteLine("Nível não especificado (!)"); newRow["IDNivel"] = DBNull.Value; } if (newRow.SFRDAvaliacaoRow.FRDBaseRow.IDNivel == newRow.IDNivel) { MessageBox.Show("Não são permitidas as relações de um nível consigo próprio.", f.Text, MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } try { newRow.Densidade = f.Densidade.ID; } catch (Exception) { MessageBox.Show("Densidade não especificada (!)"); Trace.WriteLine("Densidade não especificada (!)"); newRow["Densidade"] = DBNull.Value; } try { newRow.SubDensidade = f.SubDensidade.ID; } catch (Exception) { MessageBox.Show("Subdensidade não especificada (!)"); Trace.WriteLine("Subdensidade não especificada (!)"); } newRow.Ponderacao = f.Ponderacao; try { GisaDataSetHelper.GetInstance().SFRDAvaliacaoRel.AddSFRDAvaliacaoRelRow(newRow); } catch (ConstraintException) { MessageBox.Show("Não é permitida a existência de relações duplicadas", f.Text, MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } AddRowToLstVwInforRelacionada(newRow); } }