public KriteriumTree(DatabaseAdapter db, Kriterium objekt) { InitializeComponent(); cntrl = new ControllerKriterium(db, this); cntrl.onCreateView(); cntrl.anzeigen(objekt); }
public Kriterium getKriterium(DatabaseAdapter db) { Kriterium temp_kriterium = new Kriterium(ID: getKriteriumID()); List <Kriterium> temp_list = db.get(temp_kriterium); if (temp_list.Count > 1 || temp_list.Count < 1) { } return(temp_list[0]); }
//Die onUpdateData-Funktion ermöglicht eine Aktualiseriung der angezeigten Information public override void onUpdateData() { if (frm.GetType().Name == "Kriteriumverwaltung") { Kriteriumverwaltung krit = (Kriteriumverwaltung)frm; int temp_int_proj = krit.listeProjektID.SelectedIndex; int temp_int_prod = krit.listeProduktID.SelectedIndex; List <Kriterium> kriterien = db.get(new Kriterium(-1)); // alle Kriterien krit.listeKriterium.ItemsSource = kriterien; List <Projekt> projekte = db.get(new Projekt(-1)); // alle Projekte krit.listeProjektID.ItemsSource = projekte; List <Produkt> produkte = db.get(new Produkt(-1)); // alle Produkte krit.listeProduktID.ItemsSource = produkte; krit.listeProjektID.SelectedIndex = temp_int_proj; krit.listeProduktID.SelectedIndex = temp_int_prod; onUpdateView(); return; } else if (frm.GetType().Name == "Kriteriumstrukturverwaltung") { Kriteriumstrukturverwaltung krit = (Kriteriumstrukturverwaltung)frm; List <Kriterium> kriterien = db.get(new Kriterium()); // alle Kriterien krit.details_Kriterium.ItemsSource = kriterien; if (krit.details_ID.Text != "") { Kriterium temp_objekt = new Kriterium(); temp_objekt.setKriteriumID(Int32.Parse(krit.details_ID.Text)); krit.listeWurzelKriterium.ItemsSource = temp_objekt.getRootKriterium(db); krit.listeUnterKriterium.ItemsSource = temp_objekt.getUnterKriterium(db); krit.listeOberKriterium.ItemsSource = temp_objekt.getOberKriterium(db); } onUpdateView(); return; } else if (frm.GetType().Name == "KriteriumNutzwertVerwaltung") { onUpdateView(); return; } else if (frm.GetType().Name == "KriteriumTree") { onUpdateView(); return; } throw new NotImplementedException(); }
private async void asyncDummyKriterien(DatabaseAdapter db) { for (int i = 0; i <= 80000; i++) { Kriterium temp_objekt = new Kriterium(); temp_objekt.setBezeichnung("DUMMY NO " + i); infoBox.Dispatcher.BeginInvoke(new Action(() => { infoBox.Text += "."; })); db.insert(temp_objekt); } infoBox.Dispatcher.BeginInvoke(new Action(() => { infoBox.Text += "...Kirtierien-Dummys eingefügt."; })); }
/* * greift auf die generische get-Methode zu und wandelt sie in eine objektspezifische um */ public override List <Kriterium> get(Kriterium objekt) { List <Model> temp_list = get((Model)objekt); List <Kriterium> return_list = new List <Kriterium>(); foreach (Model temp_model in temp_list) { return_list.Add((Kriterium)temp_model); } return(return_list); }
public void removeUnterKriterium(Kriterium objekt, DatabaseAdapter db) { if (objekt == null) { return; } Kriteriumstruktur temp_objekt = new Kriteriumstruktur(this.KriteriumID, objekt.getKriteriumID()); if (db.get(temp_objekt).Count() > 0) { db.delete(temp_objekt); } }
public void addUnterKriterium(Kriterium objekt, DatabaseAdapter db) { if (objekt == null) { return; } Kriteriumstruktur temp_objekt = new Kriteriumstruktur(this.KriteriumID, objekt.getKriteriumID()); if (db.get(temp_objekt).Count() == 0) { db.insert(temp_objekt); } }
public bool isOberKriterium(Kriterium objekt, DatabaseAdapter db) { foreach (Kriterium temp_krit in this.getOberKriterium(db)) { if (temp_krit.getKriteriumID() == objekt.getKriteriumID()) { return(true); } if (temp_krit.isOberKriterium(objekt, db)) { return(true); } } return(false); }
//Legt ein neues Kriterium mit der Standardbezeichnung "Neues Kriterium" an public override void anlegen() { if (frm.GetType().Name == "Kriteriumverwaltung") { Kriteriumverwaltung krit = (Kriteriumverwaltung)frm; Kriterium temp_objekt = new Kriterium(); temp_objekt.setBezeichnung("Neues Kriterium"); temp_objekt = db.insert(temp_objekt) as Kriterium; //Nutzwert temp_objekt2 = new Nutzwert(KriteriumID: temp_objekt.getKriteriumID(), ProjektID: ((Projekt)krit.listeProjektID.SelectedItem).getProjektID(), ProduktID: ((Produkt)krit.listeProduktID.SelectedItem).getProduktID()); //db.insert(temp_objekt2); anzeigen(temp_objekt); return; } throw new NotImplementedException(); }
public List <Kriterium> getUnterKriterium(DatabaseAdapter db) { Kriteriumstruktur temp_objekt = new Kriteriumstruktur(OberKriteriumID: this.getKriteriumID(), UnterKriteriumID: -1); List <Kriterium> return_list = new List <Kriterium>(); Kriterium temp_krit; foreach (Kriteriumstruktur temp_kritstruktur in db.get(temp_objekt)) { temp_krit = new Kriterium(temp_kritstruktur.getUnterKriteriumID()); foreach (Kriterium temp_krit2 in db.get(temp_krit)) { return_list.Add(temp_krit2); } } return(return_list); }
/* * fügt ein neues Model in die Datenbank ein */ public override Model insert(Model objekt) { int myID = 0; List <Model> return_model = null; if (objekt.GetType().Name == "Kriterium") { Kriterium temp_objekt = (Kriterium)objekt; temp_objekt.setKriteriumID(newID(objekt)); // Autoincrement vergeben ExecuteSQL("INSERT INTO Kriterium (KriteriumID, Bezeichnung) VALUES ( " + temp_objekt.getKriteriumID() + ", '" + temp_objekt.getBezeichnung() + "');"); return_model = get(temp_objekt); } else if (objekt.GetType().Name == "Nutzwert") { Nutzwert temp_objekt = (Nutzwert)objekt; ExecuteSQL("INSERT INTO NWA (KriteriumID, ProjektID, ProduktID, Erfuellung, Gewichtung, Kommentar, beitrag_absolut, beitrag_absolut_check, abstufung) VALUES ( " + temp_objekt.getKriteriumID() + ", " + temp_objekt.getProjektID() + " , " + temp_objekt.getProduktID() + ", " + temp_objekt.getErfuellung() + ", " + temp_objekt.getGewichtung() + ", '" + temp_objekt.getKommentar() + "', " + temp_objekt.getBeitragAbsolut().ToString().Replace(",", ".") + ", " + temp_objekt.getBeitragAbsolutCheck() + ", " + temp_objekt.getAbstufung().ToString().Replace(",", ".") + ");"); return_model = get(temp_objekt); } else if (objekt.GetType().Name == "Produkt") { Produkt p = (Produkt)objekt; p.setProduktID(newID(objekt)); // Autoincrement vergeben ExecuteSQL("INSERT INTO Produkt (ProduktID, Bezeichnung) VALUES ( " + p.getProduktID() + ", '" + p.getBezeichnung() + "');"); return_model = get(p); } else if (objekt.GetType().Name == "Projekt") { Projekt proj = (Projekt)objekt; proj.setProjektID(newID(objekt)); // Autoincrement vergeben ExecuteSQL("INSERT INTO Projekt (ProjektID, Bezeichnung) VALUES ( " + proj.getProjektID() + ", '" + proj.getBezeichnung() + "');"); return_model = get(proj); } else if (objekt.GetType().Name == "Kriteriumstruktur") { Kriteriumstruktur temp_objekt = (Kriteriumstruktur)objekt; myID = temp_objekt.getOberKriteriumID(); // Hat kein Autoincrement ExecuteSQL("INSERT INTO Kriteriumstruktur (OberKriteriumID, UnterKriteriumID) VALUES ( " + temp_objekt.getOberKriteriumID() + ", '" + temp_objekt.getUnterKriteriumID() + "');"); return_model = get(temp_objekt); } if (return_model == null) { throw new NotImplementedException(); } return(return_model[0]); }
private TreeViewItem getTree(Kriterium objekt) { List <Kriterium> unterkriterien = objekt.getUnterKriterium(db); TreeViewItem tree = new TreeViewItem(); List <TreeViewItem> branch = new List <TreeViewItem>(); TreeViewItem temp_item = new TreeViewItem(); foreach (Kriterium temp_objekt in unterkriterien) { tree.Header = objekt.ToString(); branch.Add(getTree(temp_objekt)); } if (unterkriterien.Count == 0) { tree.Header = objekt.ToString(); } tree.ItemsSource = branch; return(tree); }
//Kriterien die versentlich als Unterkriterien gesetzt wurden koennen hiermit wieder entfernt werden public void UnterKriterium_loeschen(Kriterium objekt) { if (frm.GetType().Name == "Kriteriumstrukturverwaltung") { if (MessageBox.Show("Sind Sie sich sicher, dass sie das ausgewählte Kriterium löschen wollen?", "Löschen", MessageBoxButton.YesNo, MessageBoxImage.Warning) == MessageBoxResult.Yes) { Kriteriumstrukturverwaltung krit = (Kriteriumstrukturverwaltung)frm; if (krit.details_ID.Text != "") { Kriterium temp_objekt = new Kriterium(); temp_objekt.setKriteriumID(Int32.Parse(krit.details_ID.Text)); temp_objekt.removeUnterKriterium(objekt, db); onUpdateData(); } } return; } throw new NotImplementedException(); }
//Mit der aendern Funktion ist es möglich die Bezeichnung eines zuvor eingefügten Kriteriums zu verändern public override void aendern() { if (frm.GetType().Name == "Kriteriumverwaltung") { Kriteriumverwaltung krit = (Kriteriumverwaltung)frm; if (krit.details_ID.Text != "") { if (MessageBox.Show("Sind Sie sich sicher, dass sie das ausgewählte Kriterium ändern wollen?", "Ändern", MessageBoxButton.YesNo, MessageBoxImage.Warning) == MessageBoxResult.Yes) { Kriterium temp_objekt = new Kriterium(); temp_objekt.setKriteriumID(Int32.Parse(krit.details_ID.Text)); temp_objekt.setBezeichnung(krit.details_Bezeichnung.Text); db.update(temp_objekt); onUpdateData(); } } return; } //in der KriterumNutzwerVerwaltung können die dazugehörigen Daten eines Kriteriums(Erfuellung/Gewichtung/etc.) verändert werden else if (frm.GetType().Name == "KriteriumNutzwertVerwaltung") { if (MessageBox.Show("Sind Sie sich sicher, dass sie das ausgewählte KriteriumNutzwert ändern wollen?", "Ändern", MessageBoxButton.YesNo, MessageBoxImage.Warning) == MessageBoxResult.Yes) { KriteriumNutzwertVerwaltung krit = (KriteriumNutzwertVerwaltung)frm; // first change details for NWA specific for Produkt AND Projekt (e.g. Erfüllung) Nutzwert temp_objekt = new Nutzwert(KriteriumID: krit.details_KriteriumID.Text, ProjektID: krit.details_ProjektID.Text, ProduktID: krit.details_ProduktID.Text, Erfuellung: krit.details_Erfuellung.IsChecked.ToString(), Gewichtung: krit.details_Gewichtung.Text, Kommentar: krit.details_kommentar.Text, Abstufung: krit.details_Abstufung.Text); db.update(temp_objekt); // second change details for NWA specific for Projekt (e.g. Gewichtung) temp_objekt = new Nutzwert(KriteriumID: krit.details_KriteriumID.Text, ProjektID: krit.details_ProjektID.Text, ProduktID: "-1", Erfuellung: krit.details_Erfuellung.IsChecked.ToString(), Gewichtung: krit.details_Gewichtung.Text, Kommentar: krit.details_kommentar.Text, Abstufung: krit.details_Abstufung.Text); db.update(temp_objekt); // finished krit.Close(); } return; } throw new NotImplementedException(); }
public List <Kriterium> getOberKriterium(DatabaseAdapter db) { Kriteriumstruktur temp_objekt = new Kriteriumstruktur(UnterKriteriumID: this.getKriteriumID(), OberKriteriumID: -1); List <Kriterium> return_list = new List <Kriterium>(); Kriterium temp_krit; foreach (Kriteriumstruktur temp_kritstruktur in db.get(temp_objekt)) { temp_krit = new Kriterium(temp_kritstruktur.getOberKriteriumID()); foreach (Kriterium temp_krit2 in db.get(temp_krit)) { return_list.Add(temp_krit2); } } if (return_list.Count > 1) { throw new NotImplementedException(); } else { return(return_list); } }
//Erzeugen eines Objekts der Klasse Kriterium //Aufruf der show_kriteriumnutzwertverwaltung-Funktion in der ControllerKriterium Klasse private void Tree_Click(object sender, RoutedEventArgs e) { Kriterium objekt = new Kriterium(details_ID.Text); cntrl.show_kriteriumtree(objekt); }
//Aufruf der löschen-Funktion in der ControllerKriterium Klasse private void kriterium_loeschen_Click(object sender, RoutedEventArgs e) { Kriterium objekt = new Kriterium(details_ID.Text); cntrl.loeschen(objekt); }
//Aufruf der View der Kriteriumstrukturverwaltung in neuem Fenster private void struktur_Click(object sender, RoutedEventArgs e) { Kriterium objekt = new Kriterium(details_ID.Text, details_Bezeichnung.Text); cntrl.show_kriteriumstrukturverwaltung(objekt); }
//Aufruf der anzeigen-Funktion der ControllerKriterium Klasse private void item_selected(object sender, SelectionChangedEventArgs e) { Kriterium objekt = ((sender as ListBox).SelectedItem as Kriterium); cntrl.anzeigen(objekt); }
public Kriterium(Kriterium objekt) { setKriteriumID(objekt.getKriteriumID()); setBezeichnung(objekt.getBezeichnung()); }
public void aendern(Kriterium objekt, int ProjektID = 0, int ProduktID = 0) { throw new NotImplementedException(); }
//Aufruf des Kriterienbaums public void show_kriteriumtree(Kriterium objekt) { KriteriumTree frm = new KriteriumTree(db, objekt); frm.Show(); }
//Aufruf der Kriteriumsstrukturverwaltung public void show_kriteriumstrukturverwaltung(Kriterium objekt) { Kriteriumstrukturverwaltung frm = new Kriteriumstrukturverwaltung(db, objekt); frm.ShowDialog(); }
private void addtorow(Kriterium temp_objekt, bool erfuellung, bool anforderungen, bool gewichtung, bool nutzwert, bool prozent, int ProjektID, int[] ProduktID, DatabaseAdapter db, ControllerNutzwert cntrl_nutzwer, string count, bool produkte) { int internal_count = 1; foreach (Kriterium temp_kriterium in temp_objekt.getUnterKriterium(db)) { int row = dt.Rows.Add(); dt.Rows[row].Cells[CONST_NUM].Value = count + "." + internal_count; dt.Rows[row].Cells[CONST_BEZ].Value = temp_kriterium.getBezeichnung(); dt.Rows[row].Cells[CONST_KOM].Value = temp_kriterium.getNutzwert(db: db, ProjektID: 0, ProduktID: 0).getKommentar(); Produkt temp_produkt = new Produkt(ProduktID[0]); if (produkte) { foreach (int produkt in ProduktID) { temp_produkt = db.get(new Produkt(produkt))[0]; string column_name = temp_produkt.getBezeichnung(); if (temp_produkt.getBezeichnung().Length > CONST_PROD_LENGTH) { column_name = column_name.Substring(0, CONST_PROD_LENGTH); } dt.ColumnCount += 1; if (temp_kriterium.getGewichtung(db, ProjektID: 0, ProduktID: 0) > 0 || anforderungen == true) { if (erfuellung == true) { if (temp_kriterium.getErfuellung(db: db, ProjektID: ProjektID, ProduktID: produkt) == true) { dt.Rows[row].Cells[column_name].Value = "X"; } else { dt.Rows[row].Cells[column_name].Value = "-"; } } else { dt.Rows[row].Cells[column_name].Value = temp_kriterium.getNutzwert(db, ProjektID, temp_produkt.getProduktID()).getBeitragAbsolut(); } } } } if (anforderungen) { if (temp_kriterium.getGewichtung(db, ProjektID, temp_produkt.getProduktID()) > 0) { dt.Rows[row].Cells[CONST_ANF].Value = "X"; } else { dt.Rows[row].Cells[CONST_ANF].Value = "-"; } } if (temp_kriterium.getGewichtung(db, ProjektID, temp_produkt.getProduktID()) > 0 || anforderungen == false) { if (gewichtung) { dt.Rows[row].Cells[CONST_GEW].Value = temp_kriterium.getGewichtung(db, ProjektID, temp_produkt.getProduktID()); } if (prozent) { dt.Rows[row].Cells[CONST_PROZ].Value = cntrl_nutzwer.prozent(temp_kriterium.getNutzwert(db: db, ProjektID: ProjektID, ProduktID: temp_produkt.getProduktID())); } } addtorow(temp_kriterium, erfuellung, anforderungen, gewichtung, nutzwert, prozent, ProjektID, ProduktID, db, cntrl_nutzwer, count + "." + internal_count, produkte); internal_count++; } }
//Sofern ein Kriterium ausgewählt wurde, wird es mit der Funktion gelöscht, wobei nochmals eine Textbox erscheint und um eine Bestätigung bittet public override void loeschen(Model objekt) { if (objekt == null) { return; } if (frm.GetType().Name == "Kriteriumverwaltung") { Kriteriumverwaltung krit = (Kriteriumverwaltung)frm; if (MessageBox.Show("Sind Sie sich sicher, dass sie das ausgewählte Kriterium löschen wollen?", "Löschen", MessageBoxButton.YesNo, MessageBoxImage.Warning) == MessageBoxResult.Yes) { Kriterium temp_objekt = (Kriterium)objekt; if (temp_objekt.getUnterKriterium(db).Count > 0) { MessageBox.Show("Sie können das Kriterium nicht löschen, solange es ein UnterKriterium besitzt. Gehen Sie in die Strukturverwaltung und löschen Sie alle UnterKriterien.", "Löschen", MessageBoxButton.OK, MessageBoxImage.Warning); } else if (temp_objekt.getOberKriterium(db).Count > 0) { MessageBox.Show("Sie können das Kriterium nicht löschen, solange es ein OberKriterium besitzt. Gehen Sie in die Strukturverwaltung des OberKriteriums und löschen Sie das Kriterium aus der UnterKriterium-Liste.", "Löschen", MessageBoxButton.OK, MessageBoxImage.Warning); } else { db.delete(objekt); krit.kriterium_aendern.IsEnabled = false; krit.kriterium_loeschen.IsEnabled = false; krit.details_Bezeichnung.IsEnabled = false; krit.details_Bezeichnung.Text = ""; krit.details_ID.Text = ""; onUpdateData(); } } return; } else if (frm.GetType().Name == "Kriteriumstrukturverwaltung") { Kriteriumstrukturverwaltung krit = (Kriteriumstrukturverwaltung)frm; if (MessageBox.Show("Sind Sie sich sicher, dass sie das ausgewählte Kriterium löschen wollen?", "Löschen", MessageBoxButton.YesNo, MessageBoxImage.Warning) == MessageBoxResult.Yes) { db.delete(objekt); krit.details_Kriterium.IsEnabled = false; krit.details_Bezeichnung.IsEnabled = false; krit.listeUnterKriterium.IsEnabled = false; krit.untkrit_hinzufuegen.IsEnabled = false; krit.untkrit_loeschen.IsEnabled = false; krit.details_Bezeichnung.Text = ""; krit.details_ID.Text = ""; krit.details_ProduktID.Text = ""; krit.details_ProjektID.Text = ""; onUpdateData(); } return; } else if (frm.GetType().Name == "KriteriumNutzwertVerwaltung") { KriteriumNutzwertVerwaltung krit = (KriteriumNutzwertVerwaltung)frm; if (MessageBox.Show("Sind Sie sich sicher, dass sie das ausgewählte Nutzwert löschen wollen?", "Löschen", MessageBoxButton.YesNo, MessageBoxImage.Warning) == MessageBoxResult.Yes) { db.delete(objekt); krit.Close(); } return; } throw new NotImplementedException(); }
public void BuildDataTable(bool erfuellung, bool anforderungen, bool gewichtung, bool nutzwert, bool prozent, int ProjektID, int[] ProduktID, DatabaseAdapter db, bool produkte) { dt = new DataGridView(); dt.ColumnCount = 1; dt.Columns[dt.ColumnCount - 1].Name = CONST_NUM; dt.Columns[dt.ColumnCount - 1].Width = 50; dt.ColumnCount += 1; dt.Columns[dt.ColumnCount - 1].Name = CONST_BEZ; dt.Columns[dt.ColumnCount - 1].Width = 300; if (gewichtung) { dt.ColumnCount += 1; dt.Columns[dt.ColumnCount - 1].Name = CONST_GEW; dt.Columns[dt.ColumnCount - 1].Width = 50; } if (anforderungen) { dt.ColumnCount += 1; dt.Columns[dt.ColumnCount - 1].Name = CONST_ANF; dt.Columns[dt.ColumnCount - 1].Width = 50; } Produkt temp_produkt = new Produkt(ProduktID[0]); ControllerNutzwert cntrl_nutzwer = new ControllerNutzwert(db, null); if (produkte) { foreach (int produkt in ProduktID) { temp_produkt = db.get(new Produkt(produkt))[0]; dt.ColumnCount += 1; string column_name = temp_produkt.getBezeichnung(); if (temp_produkt.getBezeichnung().Length > CONST_PROD_LENGTH) { column_name = column_name.Substring(0, CONST_PROD_LENGTH); } dt.Columns[dt.ColumnCount - 1].Name = column_name; } } dt.ColumnCount += 1; dt.Columns[dt.ColumnCount - 1].Name = CONST_KOM; dt.Columns[dt.ColumnCount - 1].Width = 300; Nutzwert temp_nwa = db.get(new Nutzwert(KriteriumID: 1, ProjektID: ProjektID, ProduktID: temp_produkt.getProduktID()))[0]; Kriterium root_kriterium = temp_nwa.getKriterium(db).getRootKriterium(db)[0]; if (root_kriterium.getErfuellung(db: db, ProjektID: ProjektID, ProduktID: temp_produkt.getProduktID()) == true || anforderungen == false) { if (prozent) { dt.ColumnCount += 1; dt.Columns[dt.ColumnCount - 1].Name = CONST_PROZ; dt.Columns[dt.ColumnCount - 1].Width = 50; } } int row = dt.Rows.Add(); dt.Rows[row].Cells[CONST_NUM].Value = "0"; dt.Rows[row].Cells[CONST_BEZ].Value = root_kriterium.getBezeichnung(); dt.Rows[row].Cells[CONST_KOM].Value = root_kriterium.getNutzwert(db, ProjektID, temp_produkt.getProduktID()).getKommentar(); if (anforderungen) { if (root_kriterium.getNutzwert(db, 0, 0).getGewichtung() == 0) { dt.Rows[row].Cells[CONST_ANF].Value = "-"; } else { dt.Rows[row].Cells[CONST_ANF].Value = "X"; } } if (produkte) { foreach (int produkt in ProduktID) { temp_produkt = db.get(new Produkt(produkt))[0]; string column_name = temp_produkt.getBezeichnung(); if (temp_produkt.getBezeichnung().Length > CONST_PROD_LENGTH) { column_name = column_name.Substring(0, CONST_PROD_LENGTH); } if (erfuellung == false) { cntrl_nutzwer.funktionsabdeckungsgrad_berechnen(root_kriterium.getNutzwert(db, ProjektID, temp_produkt.getProduktID())); } if (anforderungen == true) { dt.Rows[row].Cells[column_name].Value = root_kriterium.getNutzwert(db, ProjektID, temp_produkt.getProduktID()).getErfuellung(); } else { dt.Rows[row].Cells[column_name].Value = root_kriterium.getNutzwert(db, ProjektID, temp_produkt.getProduktID()).getBeitragAbsolut(); } if (erfuellung) { if (root_kriterium.getGewichtung(db: db, ProjektID: ProjektID, ProduktID: temp_produkt.getProduktID()) > 0) { dt.Rows[row].Cells[column_name].Value = "X"; } else { dt.Rows[row].Cells[column_name].Value = "-"; } } else { dt.Rows[row].Cells[column_name].Value = root_kriterium.getNutzwert(db, ProjektID, temp_produkt.getProduktID()).getBeitragAbsolut(); } } } if (root_kriterium.getGewichtung(db: db, ProjektID: ProjektID, ProduktID: temp_produkt.getProduktID()) > 0 || anforderungen == false) { if (gewichtung) { dt.Rows[row].Cells[CONST_GEW].Value = root_kriterium.getGewichtung(db, ProjektID, temp_produkt.getProduktID()); } if (prozent) { dt.Rows[row].Cells[CONST_PROZ].Value = cntrl_nutzwer.prozent(root_kriterium.getNutzwert(db: db, ProjektID: ProjektID, ProduktID: temp_produkt.getProduktID())); } } addtorow(root_kriterium, erfuellung, anforderungen, gewichtung, nutzwert, prozent, ProjektID, ProduktID, db, cntrl_nutzwer, "0", produkte); }
//mit der anziegen Funktion werden die Daten der Kriterien in die dafürvorgesehenen Felder eingetragen public override void anzeigen(Model objekt) { if (objekt == null) { return; } if (frm.GetType().Name == "Kriteriumverwaltung") { Kriteriumverwaltung krit = (Kriteriumverwaltung)frm; if (objekt.GetType().Name == "Kriterium") { Kriterium temp_objekt = (Kriterium)objekt; krit.details_ID.Text = temp_objekt.getKriteriumID().ToString(); krit.details_Bezeichnung.Text = temp_objekt.getBezeichnung(); krit.kriterium_aendern.IsEnabled = true; krit.kriterium_loeschen.IsEnabled = true; krit.details_Bezeichnung.IsEnabled = true; onUpdateData(); return; } throw new NotImplementedException(); } else if (frm.GetType().Name == "Kriteriumstrukturverwaltung") { Kriteriumstrukturverwaltung krit = (Kriteriumstrukturverwaltung)frm; if (objekt.GetType().Name == "Kriterium") { Kriterium temp_objekt = (Kriterium)objekt; krit.details_ID.Text = temp_objekt.getKriteriumID().ToString(); krit.details_Bezeichnung.Text = temp_objekt.getBezeichnung(); krit.details_ProduktID.Text = "0"; // auto set krit.details_ProjektID.Text = "0"; // auto set krit.details_Kriterium.IsEnabled = true; krit.listeUnterKriterium.IsEnabled = true; krit.listeUnterKriterium.ItemsSource = temp_objekt.getUnterKriterium(db); onUpdateData(); return; } throw new NotImplementedException(); } else if (frm.GetType().Name == "KriteriumNutzwertVerwaltung") { List <Nutzwert> temp_list = db.get((Nutzwert)objekt); if (temp_list.Count > 0) { Nutzwert temp_objekt = temp_list[0]; KriteriumNutzwertVerwaltung krit = (KriteriumNutzwertVerwaltung)frm; krit.details_ProjektID.Text = temp_objekt.getProjektID().ToString(); krit.details_ProduktID.Text = temp_objekt.getProduktID().ToString(); krit.details_KriteriumID.Text = temp_objekt.getKriteriumID().ToString(); krit.details_Erfuellung.IsChecked = temp_objekt.getErfuellung(); krit.details_Gewichtung.Text = temp_objekt.getGewichtung().ToString(); krit.details_kommentar.Text = temp_objekt.getKommentar(); krit.details_beitrag_absolut.Text = temp_objekt.getBeitragAbsolut().ToString(); krit.details_Abstufung.Text = temp_objekt.getAbstufung().ToString(); onUpdateData(); return; } else { throw new NotImplementedException(); } } else if (frm.GetType().Name == "KriteriumTree") { KriteriumTree krit = (KriteriumTree)frm; Kriterium temp_objekt = (Kriterium)objekt; Kriterium root_objekt = temp_objekt.getRootKriterium(db)[0]; krit.treeview.Items.Add(getTree(root_objekt)); onUpdateData(); return; } throw new NotImplementedException(); }
/* * generische get-Methode */ public List <Model> get(Model objekt) { List <Model> return_list = new List <Model>(); if (objekt.GetType().Name == "Kriterium") { Kriterium temp_obj = (Kriterium)objekt; if (temp_obj.getKriteriumID() == -1) { DataTable temp_datatable = QuerySQL("SELECT * FROM Kriterium;"); foreach (DataRow row in temp_datatable.Rows) { Kriterium temp_model = new Kriterium(); temp_model.setKriteriumID((int)row[0]); temp_model.setBezeichnung((string)row[1]); return_list.Add(temp_model); } } else if (temp_obj.getKriteriumID() == 0) // falsch noch korrigieren! { DataTable temp_datatable = QuerySQL("SELECT * FROM Kriterium;"); foreach (DataRow row in temp_datatable.Rows) { Kriterium temp_model = new Kriterium(); temp_model.setKriteriumID((int)row[0]); temp_model.setBezeichnung((string)row[1]); return_list.Add(temp_model); } } else { DataTable temp_datatable = QuerySQL("SELECT * FROM Kriterium WHERE KriteriumID = " + temp_obj.getKriteriumID() + ";"); foreach (DataRow row in temp_datatable.Rows) { Kriterium temp_model = new Kriterium(); temp_model.setKriteriumID((int)row[0]); temp_model.setBezeichnung((string)row[1]); return_list.Add(temp_model); } } return(return_list); } else if (objekt.GetType().Name == "Nutzwert") { Nutzwert temp_obj = (Nutzwert)objekt; if (temp_obj.getProduktID() == -1 && temp_obj.getProjektID() != -1 && temp_obj.getKriteriumID() != -1) { DataTable temp_datatable = QuerySQL("SELECT * FROM NWA WHERE KriteriumID = " + temp_obj.getKriteriumID() + " AND ProjektID = " + temp_obj.getProjektID() + ";"); foreach (DataRow row in temp_datatable.Rows) { Nutzwert temp_model = new Nutzwert(ProjektID: (int)row[0], KriteriumID: (int)row[1], ProduktID: (int)row[2], Erfuellung: (bool)row[3], Gewichtung: (int)row[4], Kommentar: (string)row[5], BeitragAbsolut: (double)row[6], BeitragAbsolutCheck: (bool)row[7], Abstufung: (double)row[8]); return_list.Add(temp_model); } } else if (temp_obj.getProduktID() == -1 && temp_obj.getProjektID() != -1 && temp_obj.getKriteriumID() == -1) { DataTable temp_datatable = QuerySQL("SELECT * FROM NWA WHERE ProjektID = " + temp_obj.getProjektID() + ";"); foreach (DataRow row in temp_datatable.Rows) { Nutzwert temp_model = new Nutzwert(ProjektID: (int)row[0], KriteriumID: (int)row[1], ProduktID: (int)row[2], Erfuellung: (bool)row[3], Gewichtung: (int)row[4], Kommentar: (string)row[5], BeitragAbsolut: (double)row[6], BeitragAbsolutCheck: (bool)row[7], Abstufung: (double)row[8]); return_list.Add(temp_model); } } else if (temp_obj.getKriteriumID() >= 0 && temp_obj.getProjektID() >= 0 && temp_obj.getProduktID() >= 0) { DataTable temp_datatable = QuerySQL("SELECT * FROM NWA WHERE KriteriumID = " + temp_obj.getKriteriumID() + " AND ProjektID = " + temp_obj.getProjektID() + " AND ProduktID = " + temp_obj.getProduktID() + ";"); foreach (DataRow row in temp_datatable.Rows) { Nutzwert temp_model = new Nutzwert(ProjektID: (int)row[0], KriteriumID: (int)row[1], ProduktID: (int)row[2], Erfuellung: (bool)row[3], Gewichtung: (int)row[4], Kommentar: (string)row[5], BeitragAbsolut: (double)row[6], BeitragAbsolutCheck: (bool)row[7], Abstufung: (double)row[8]); return_list.Add(temp_model); } /* Wenn per Get kein NWA-Model gefunden wurde, wird aus dem Standard-NWA ein Model erzeugt und in der DB gespeichert */ if (return_list.Count == 0 && temp_obj.getProduktID() != 0 && temp_obj.getProjektID() != 0) { List <Model> standard_objekt = this.get(new Nutzwert(KriteriumID: temp_obj.getKriteriumID(), ProjektID: 0, ProduktID: 0)); if (standard_objekt.Count != 1) { throw new Exception("Es darf nur ein Standard-NWA-Objekt vorhanden sein."); } else { // checken ob ein NWA-Objekt mit Gewichtung für das Projekt exestiert List <Model> projekt_objekt = this.get(new Nutzwert(KriteriumID: temp_obj.getKriteriumID(), ProjektID: temp_obj.getProjektID(), ProduktID: -1)); if (projekt_objekt.Count == 0) { // Gewichtung ebenfalls aus Standard-NWA-Objekt holen return_list.Add(insert(new Nutzwert(KriteriumID: temp_obj.getKriteriumID(), ProjektID: temp_obj.getProjektID(), ProduktID: temp_obj.getProduktID(), Erfuellung: ((Nutzwert)standard_objekt[0]).getErfuellung(), Gewichtung: ((Nutzwert)standard_objekt[0]).getGewichtung(), Abstufung: ((Nutzwert)standard_objekt[0]).getAbstufung()))); } else { // Gewichtung aus dem NWA-Projekt-Objekt holen return_list.Add(insert(new Nutzwert(KriteriumID: temp_obj.getKriteriumID(), ProjektID: temp_obj.getProjektID(), ProduktID: temp_obj.getProduktID(), Erfuellung: ((Nutzwert)standard_objekt[0]).getErfuellung(), Gewichtung: ((Nutzwert)projekt_objekt[0]).getGewichtung(), Abstufung: ((Nutzwert)projekt_objekt[0]).getAbstufung()))); } } /* Wenn kein Standard-NWA-Model gefunden wurde, wird dieses erzeugt und in der DB gespeichert, dies sollte im Normalfall nicht passieren */ } else if (return_list.Count == 0 && temp_obj.getProduktID() == 0 && temp_obj.getProjektID() == 0 && temp_obj.getKriteriumID() != 0) { Nutzwert standard_objekt = (Nutzwert)get(new Nutzwert(0, 0, 0))[0]; return_list.Add(insert(new Nutzwert(KriteriumID: temp_obj.getKriteriumID(), ProjektID: temp_obj.getProjektID(), ProduktID: temp_obj.getProduktID(), Erfuellung: standard_objekt.getErfuellung(), Gewichtung: standard_objekt.getGewichtung(), Abstufung: standard_objekt.getAbstufung()))); } else if (return_list.Count == 0) { throw new NotImplementedException(); } } else if (temp_obj.getProjektID() >= 0 && temp_obj.getProduktID() >= 0 && temp_obj.getKriteriumID() == -1) { DataTable temp_datatable = QuerySQL("SELECT * FROM NWA WHERE ProjektID = " + temp_obj.getProjektID() + " AND ProduktID = " + temp_obj.getProduktID() + ";"); foreach (DataRow row in temp_datatable.Rows) { Nutzwert temp_model = new Nutzwert(ProjektID: (int)row[0], KriteriumID: (int)row[1], ProduktID: (int)row[2], Erfuellung: (bool)row[3], Gewichtung: (int)row[4], Kommentar: (string)row[5], BeitragAbsolut: (double)row[6], BeitragAbsolutCheck: (bool)row[7], Abstufung: (double)row[8]); return_list.Add(temp_model); } } else if (temp_obj.getProjektID() >= 0 && temp_obj.getProduktID() == -1 && temp_obj.getKriteriumID() == -1) { DataTable temp_datatable = QuerySQL("SELECT * FROM NWA WHERE ProjektID = " + temp_obj.getProjektID() + ";"); foreach (DataRow row in temp_datatable.Rows) { Nutzwert temp_model = new Nutzwert(ProjektID: (int)row[0], KriteriumID: (int)row[1], ProduktID: (int)row[2], Erfuellung: (bool)row[3], Gewichtung: (int)row[4], Kommentar: (string)row[5], BeitragAbsolut: (double)row[6], BeitragAbsolutCheck: (bool)row[7], Abstufung: (double)row[8]); return_list.Add(temp_model); } } else { throw new NotImplementedException(); } return(return_list); } else if (objekt.GetType().Name == "Produkt") { Produkt temp_obj = (Produkt)objekt; if (temp_obj.getProduktID() >= 0) { DataTable temp_datatable = QuerySQL("SELECT * FROM Produkt WHERE ProduktID = " + temp_obj.getProduktID() + ";"); foreach (DataRow row in temp_datatable.Rows) { Produkt temp_model = new Produkt(); temp_model.setProduktID((int)row[0]); temp_model.setBezeichnung((string)row[1]); return_list.Add(temp_model); } } else { DataTable temp_datatable = QuerySQL("SELECT * FROM Produkt;"); foreach (DataRow row in temp_datatable.Rows) { Produkt temp_model = new Produkt(); temp_model.setProduktID((int)row[0]); temp_model.setBezeichnung((string)row[1]); return_list.Add(temp_model); } } return(return_list); } else if (objekt.GetType().Name == "Projekt") { Projekt temp_obj = (Projekt)objekt; if (temp_obj.getProjektID() > 0) { DataTable temp_datatable = QuerySQL("SELECT * FROM Projekt WHERE ProjektID = " + temp_obj.getProjektID() + ";"); foreach (DataRow row in temp_datatable.Rows) { Projekt temp_model = new Projekt(); temp_model.setProjektID((int)row[0]); temp_model.setBezeichnung((string)row[1]); return_list.Add(temp_model); } } else { DataTable temp_datatable = QuerySQL("SELECT * FROM Projekt;"); foreach (DataRow row in temp_datatable.Rows) { Projekt temp_model = new Projekt(); temp_model.setProjektID((int)row[0]); temp_model.setBezeichnung((string)row[1]); return_list.Add(temp_model); } } return(return_list); } else if (objekt.GetType().Name == "Kriteriumstruktur") { Kriteriumstruktur temp_obj = (Kriteriumstruktur)objekt; DataTable temp_datatable; if (temp_obj.getUnterKriteriumID() == -1 && temp_obj.getOberKriteriumID() == -1) { temp_datatable = QuerySQL("SELECT * FROM Kriteriumstruktur;"); foreach (DataRow row in temp_datatable.Rows) { Kriteriumstruktur temp_model = new Kriteriumstruktur(); temp_model.setOberKriteriumID((int)row[0]); temp_model.setUnterKriteriumID((int)row[1]); return_list.Add(temp_model); } } else if (temp_obj.getOberKriteriumID() >= 0 && temp_obj.getUnterKriteriumID() == -1) { temp_datatable = QuerySQL("SELECT * FROM Kriteriumstruktur WHERE OberKriteriumID = " + temp_obj.getOberKriteriumID() + ";"); foreach (DataRow row in temp_datatable.Rows) { Kriteriumstruktur temp_model = new Kriteriumstruktur(); temp_model.setOberKriteriumID((int)row[0]); temp_model.setUnterKriteriumID((int)row[1]); return_list.Add(temp_model); } } else if (temp_obj.getUnterKriteriumID() >= 0 && temp_obj.getOberKriteriumID() == -1) { temp_datatable = QuerySQL("SELECT * FROM Kriteriumstruktur WHERE UnterKriteriumID = " + temp_obj.getUnterKriteriumID() + ";"); foreach (DataRow row in temp_datatable.Rows) { Kriteriumstruktur temp_model = new Kriteriumstruktur(); temp_model.setOberKriteriumID((int)row[0]); temp_model.setUnterKriteriumID((int)row[1]); return_list.Add(temp_model); } } else if (temp_obj.getUnterKriteriumID() != -1 && temp_obj.getOberKriteriumID() != -1) { temp_datatable = QuerySQL("SELECT * FROM Kriteriumstruktur WHERE UnterKriteriumID = " + temp_obj.getUnterKriteriumID() + " AND OberKriteriumID = " + temp_obj.getOberKriteriumID() + ";"); foreach (DataRow row in temp_datatable.Rows) { Kriteriumstruktur temp_model = new Kriteriumstruktur(); temp_model.setOberKriteriumID((int)row[0]); temp_model.setUnterKriteriumID((int)row[1]); return_list.Add(temp_model); } } return(return_list); } throw new NotImplementedException(); }
abstract public void update(Model objekt); // hole z.B. Namen/ID aus Model und suche danach in der Datenbank, überschreibe das Model mit dem übergebenen Model. Gib true bei Erfolg zurück abstract public List <Kriterium> get(Kriterium objekt); /* hole z.B. Namen/ID aus Model und suche danach in der Datenbank, gebe das vollständige Model zurück */
public override void onUpdateView() { if (frm.GetType().Name == "Kriteriumstrukturverwaltung") { Kriteriumstrukturverwaltung krit = (Kriteriumstrukturverwaltung)frm; if (krit.details_Kriterium.SelectedItem != null) { Kriterium choosen_objekt = (Kriterium)krit.details_Kriterium.SelectedItem; Kriterium actual_objekt = new Kriterium(krit.details_ID.Text); if (choosen_objekt.getKriteriumID() != actual_objekt.getKriteriumID() && find(krit.listeUnterKriterium.ItemsSource as List <Kriterium>, choosen_objekt.getKriteriumID()) == false && actual_objekt.isOberKriterium(choosen_objekt, db) == false) { krit.untkrit_hinzufuegen.IsEnabled = true; } else { krit.untkrit_hinzufuegen.IsEnabled = false; } } else { krit.untkrit_hinzufuegen.IsEnabled = false; } if (krit.listeUnterKriterium.SelectedItem != null) { krit.untkrit_loeschen.IsEnabled = true; } else { krit.untkrit_loeschen.IsEnabled = false; } return; } else if (frm.GetType().Name == "Kriteriumverwaltung") { Kriteriumverwaltung krit = (Kriteriumverwaltung)frm; if (krit.details_ID.Text.Equals("") == false) { krit.nutzwert.IsEnabled = true; krit.Tree.IsEnabled = true; if (Int32.Parse(krit.details_ID.Text) != 0) { krit.struktur.IsEnabled = true; } else { krit.struktur.IsEnabled = false; } } else { krit.Tree.IsEnabled = false; krit.struktur.IsEnabled = false; krit.nutzwert.IsEnabled = false; } return; } else if (frm.GetType().Name == "KriteriumNutzwertVerwaltung") { KriteriumNutzwertVerwaltung krit = (KriteriumNutzwertVerwaltung)frm; if (krit.details_ProjektID.Text.Equals("0") == false && krit.details_ProduktID.Text.Equals("0") == false) { krit.loeschen.IsEnabled = true; } else { krit.loeschen.IsEnabled = false; } return; } else if (frm.GetType().Name == "KriteriumTree") { return; } throw new NotImplementedException(); }