//Hauptfunktion der Nutzwertanalyse, die in die anderen Funktionen verzweigt public void funktionsabdeckungsgrad_berechnen(Nutzwert NWAobjekt) { NWAobjekt.setBeitragAbsolutCheck(false); db.update(NWAobjekt); List <Kriterium> list = NWAobjekt.getKriterium(db).getUnterKriterium(db); if (list.Count > 0) { foreach (Kriterium temp_obj in list) { funktionsabdeckungsgrad_berechnen(temp_obj.getNutzwert(db: db, ProjektID: NWAobjekt.getProjektID(), ProduktID: NWAobjekt.getProduktID())); } } else { double temp_beitrag = funktionsabdeckungsgrad_beitrag(NWAobjekt); if (temp_beitrag != 0) { double beitrag_absolut = funktionsabdeckungsgrad_beitrag_absolut(NWAobjekt.getKriterium(db).getOberKriterium(db)[0].getNutzwert(db, NWAobjekt.getProjektID(), NWAobjekt.getProduktID()), temp_beitrag); NWAobjekt.setBeitragAbsolut(beitrag_absolut * NWAobjekt.getAbstufung()); } else { NWAobjekt.setBeitragAbsolut(0); } NWAobjekt.setBeitragAbsolutCheck(true); db.update(NWAobjekt); funktionsabdeckungsgrad_aufsummieren(NWAobjekt); } }
//Summiert die Ergebnisse aller Kriterien (Unterkriterium und Oberkriterium) private void funktionsabdeckungsgrad_aufsummieren(Nutzwert NWAobjekt) { bool change = funktionsabdeckungsgrad_aufsummieren_check(NWAobjekt); double temp_beitrag = 0; if (change == false) { List <Kriterium> list = NWAobjekt.getKriterium(db).getUnterKriterium(db); if (list.Count > 0) { foreach (Kriterium temp in list) { temp_beitrag += temp.getNutzwert(db: db, ProjektID: NWAobjekt.getProjektID(), ProduktID: NWAobjekt.getProduktID()).getBeitragAbsolut() * NWAobjekt.getAbstufung(); } NWAobjekt.setBeitragAbsolut(temp_beitrag); NWAobjekt.setBeitragAbsolutCheck(true); db.update(NWAobjekt); } } List <Kriterium> temp_oberkriterien = NWAobjekt.getKriterium(db).getOberKriterium(db); if (temp_oberkriterien.Count > 0) { funktionsabdeckungsgrad_aufsummieren(temp_oberkriterien[0].getNutzwert(db, NWAobjekt.getProjektID(), NWAobjekt.getProduktID())); } }