示例#1
0
 public KriteriumTree(DatabaseAdapter db, Kriterium objekt)
 {
     InitializeComponent();
     cntrl = new ControllerKriterium(db, this);
     cntrl.onCreateView();
     cntrl.anzeigen(objekt);
 }
示例#2
0
        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();
        }
示例#4
0
 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."; }));
 }
示例#5
0
        /*
         *  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);
        }
示例#6
0
        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);
            }
        }
示例#7
0
        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);
            }
        }
示例#8
0
 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();
        }
示例#10
0
        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);
        }
示例#11
0
        /*
         * 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]);
        }
示例#12
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);
        }
示例#13
0
        //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();
        }
示例#14
0
        //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();
        }
示例#15
0
        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);
        }
示例#20
0
 public Kriterium(Kriterium objekt)
 {
     setKriteriumID(objekt.getKriteriumID());
     setBezeichnung(objekt.getBezeichnung());
 }
示例#21
0
 public void aendern(Kriterium objekt, int ProjektID = 0, int ProduktID = 0)
 {
     throw new NotImplementedException();
 }
示例#22
0
        //Aufruf des Kriterienbaums
        public void show_kriteriumtree(Kriterium objekt)
        {
            KriteriumTree frm = new KriteriumTree(db, objekt);

            frm.Show();
        }
示例#23
0
        //Aufruf  der Kriteriumsstrukturverwaltung
        public void show_kriteriumstrukturverwaltung(Kriterium objekt)
        {
            Kriteriumstrukturverwaltung frm = new Kriteriumstrukturverwaltung(db, objekt);

            frm.ShowDialog();
        }
示例#24
0
        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++;
            }
        }
示例#25
0
 //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();
 }
示例#26
0
        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);
        }
示例#27
0
        //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();
        }
示例#28
0
        /*
         * 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();
        }
示例#29
0
 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 */
示例#30
0
        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();
        }