Example #1
0
        private void pobierzKryteriaDlaCelu(int idCelu)
        {
            Dictionary <int, String> listaKryteriow = KryteriumController.pobierzListeNazwKryteriow(idCelu);

            List <Wynik> listaWynikow = new List <Wynik>();

            DataTable dt = stworzStruktureWag();

            foreach (KeyValuePair <int, String> kryterium in listaKryteriow)
            {
                listaWynikow.AddRange(WynikController.pobierzWynikiCelu(kryterium.Key));
            }

            int lp = 1;

            foreach (Wynik w in listaWynikow)
            {
                DataRow dr = dt.NewRow();
                dr["Lp"]        = lp;
                dr["Kryterium"] = listaKryteriow[w.Kryterium1];
                dr["Względem"]  = listaKryteriow[w.Kryterium2];
                dr["Waga"]      = w.Waga;

                dt.Rows.Add(dr);

                lp++;
            }

            wagiDataGridView.DataSource = dt;
        }
Example #2
0
        private void dodajButton_Click(object sender, EventArgs e)
        {
            if (celRadioButton.Checked)
            {
                KryteriumController.dodajKryterium(nazwaTextBox.Text, opisRichTextBox.Text, 0, false, 0);
            }
            else if (kryteriumRadioButton.Checked)
            {
                KryteriumController.dodajKryterium(nazwaTextBox.Text, opisRichTextBox.Text, kryteriumID, false, celID);
                KryteriumController.dodajLiczbePodkryteriow(kryteriumID, false);

                liczbaPodkryteriow++;
            }
            else if (wariantRadioButton.Checked)
            {
                KryteriumController.dodajKryterium(nazwaTextBox.Text, opisRichTextBox.Text, kryteriumID, true, celID);
                DataTable tabelaWariantow = KryteriumController.pobierzTabeleWariantow(kryteriumID);

                if (tabelaWariantow.Rows.Count > 0)
                {
                    wariantyListBox.DataSource    = tabelaWariantow;
                    wariantyListBox.ValueMember   = "ID_Wariantu";
                    wariantyListBox.DisplayMember = "Nazwa";
                    wariantyListBox.ClearSelected();
                }
            }

            pobierzCele();
            problemDataGridView.Rows[selectedIndex].Selected = true;
            wyczyscKontrolki();
        }
Example #3
0
        private void usunButton_Click(object sender, EventArgs e)
        {
            ExpertHelperDataContext db = new ExpertHelperDataContext();

            TreeNode selectedNode = kryteriumPanel.getSelectedNode();
            int      celID        = kryteriumPanel.getCelID();

            if (null != selectedNode)
            {
                int kryteriumID = int.Parse(selectedNode.Name.ToString());

                DialogResult result = MessageBox.Show("Czy na pewno chcesz usunąć zaznaczone kryterium i wszystkie jego podkryteria?", "Usuń", MessageBoxButtons.YesNo, MessageBoxIcon.Question);

                if (result == DialogResult.Yes)
                {
                    List <int> listaPodkryteriow = KryteriumController.stworzListeDoUsuniecia(kryteriumID, celID);

                    foreach (int idPodkryterium in listaPodkryteriow)
                    {
                        KryteriumController.usunKryterium(idPodkryterium, db);
                    }

                    kryteriumPanel.pobierzCele();
                }
            }
        }
Example #4
0
        private void kryteriaTreeView_AfterSelect(object sender, TreeViewEventArgs e)
        {
            ExpertHelperDataContext db = new ExpertHelperDataContext();

            wyczyscKontrolki();
            dodajButton.Enabled  = false;
            zapiszButton.Enabled = true;

            if (kryteriaTreeView.SelectedNode == null)
            {
                ustalBlokadeKontrolek(false);
                setButtonEnable("Usuń", false);
            }
            else
            {
                ustalBlokadeKontrolek(true);
                setButtonEnable("Usuń", true);
                TreeNode item = kryteriaTreeView.SelectedNode;
                kryteriumID = int.Parse(item.Name.ToString());
                Kryterium kryterium = KryteriumController.pobierzKryterium(kryteriumID, db, false);

                if (null != kryterium)
                {
                    nazwaTextBox.Text = kryterium.Nazwa;
                    opisRichTextBox.AppendText(kryterium.Opis);
                }
            }
        }
        public static DataTable stworzTabeleWag(int idCelu, int idKryterium, Dictionary <String, int> listaIdKryteriow)
        {
            DataTable        tabelaWag         = new DataTable();
            List <Kryterium> listaPodkryteriow = KryteriumController.pobierzListePodkryteriow(idKryterium, idCelu);

            ExpertHelperDataContext db = new ExpertHelperDataContext();

            Kryterium kryterium = KryteriumController.pobierzKryterium(idKryterium, db, false);

            if (listaPodkryteriow.Count > 0)
            {
                tabelaWag.Columns.Add(kryterium.Nazwa);
                listaPodkryteriow.ForEach(d =>
                {
                    tabelaWag.Columns.Add(d.Nazwa); tabelaWag.Rows.Add(d.Nazwa);
                });
            }
            else
            {
                List <Kryterium> listaWariantow = KryteriumController.pobierzListeWariantow(idCelu);
                tabelaWag.Columns.Add(kryterium.Nazwa);

                listaWariantow.ForEach(w =>
                {
                    tabelaWag.Columns.Add(w.Nazwa); tabelaWag.Rows.Add(w.Nazwa);
                });
            }

            foreach (DataRow dr in tabelaWag.Rows)
            {
                foreach (DataColumn dc in tabelaWag.Columns)
                {
                    if (dr.Table.Columns[dc.ColumnName].Ordinal > 0)
                    {
                        int rowID    = listaIdKryteriow[dr[0].ToString()];
                        int columnID = listaIdKryteriow[dc.ColumnName];
                        int glowneID = listaIdKryteriow[dr.Table.Columns[0].ColumnName.ToString()];

                        Waga waga = WagaController.pobierzWage(glowneID, rowID, columnID, db);

                        if (null != waga)
                        {
                            dr[dc] = waga.Waga1;
                        }
                        else if (rowID == columnID)
                        {
                            dr[dc] = 1;
                        }
                        else
                        {
                            dr[dc] = 0;
                        }
                    }
                }
            }

            return(tabelaWag);
        }
Example #6
0
        private void problemDataGridView_SelectionChanged(object sender, EventArgs e)
        {
            kryteriaTreeView.Nodes.Clear();
            wariantyListBox.DataSource = null;
            wyczyscKontrolki();
            dodajButton.Enabled    = false;
            zapiszButton.Enabled   = true;
            celRadioButton.Checked = true;
            ustalZaznaczenie(wariantRadioButton, kryteriumRadioButton);
            setButtonEnable("Usuń", false);
            setButtonEnable("Dalej", false);

            if (problemDataGridView.SelectedRows.Count == 1)
            {
                try
                {
                    DataGridViewRow dataRow = problemDataGridView.SelectedRows[0];

                    kryteriumID   = int.Parse(dataRow.Cells[1].Value.ToString());
                    celID         = kryteriumID;
                    selectedIndex = problemDataGridView.SelectedRows[0].Index;

                    if (pierwszyZaznaczony == selectedIndex)
                    {
                        setButtonEnable("Dalej", true);
                    }
                    else
                    {
                        setButtonEnable("Dalej", false);
                    }

                    TreeNode listaNodow = KryteriumController.pobierzDrzewo(kryteriumID);
                    kryteriaTreeView.Nodes.AddRange(new TreeNode[] { listaNodow });

                    DataTable tabelaWariantow = KryteriumController.pobierzTabeleWariantow(kryteriumID);

                    if (tabelaWariantow.Rows.Count > 0)
                    {
                        wariantyListBox.DataSource    = tabelaWariantow;
                        wariantyListBox.ValueMember   = "ID_Wariantu";
                        wariantyListBox.DisplayMember = "Nazwa";
                        wariantyListBox.ClearSelected();
                    }

                    nazwaTextBox.Text    = dataRow.Cells[3].Value.ToString();
                    opisRichTextBox.Text = dataRow.Cells[4].Value.ToString();

                    ustalLiczbePodkryteriow();
                }
                catch
                {
                    MessageBox.Show("Zaznacz wiersz z danymi!", "Błąd!", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
            }
        }
Example #7
0
        private void wynikButton_Click(object sender, EventArgs e)
        {
            List <Wynik>              listaWynikow      = WynikController.pobierzWynikiCelu(idCelu);
            List <Kryterium>          listaWariantow    = KryteriumController.pobierzListeWariantow(idCelu);
            Dictionary <int, decimal> listaWagWariantow = new Dictionary <int, decimal>();

            foreach (Kryterium kryteriumWariant in listaWariantow)
            {
                decimal waga        = 0;
                decimal wagaMnozona = 1;

                List <Wynik> listaWagWariantu = listaWynikow.Where(w => w.Kryterium1 == kryteriumWariant.ID).Select(w => new Wynik {
                    ID = w.ID, KryteriumGlowne = w.KryteriumGlowne, Kryterium1 = w.Kryterium1, Kryterium2 = w.Kryterium2, Waga = w.Waga
                }).ToList();

                List <Wynik> listaPosortowana = listaWagWariantu.OrderByDescending(o => o.ID).ThenByDescending(o => o.Kryterium1).ToList();

                foreach (Wynik w in listaPosortowana.OrderByDescending(o => o.Kryterium2))
                {
                    wagaMnozona = Convert.ToDecimal(w.Waga);

                    int idKryterium2 = w.Kryterium2;

                    do
                    {
                        Wynik wynikOjca = pobierzWage(idKryterium2, listaWynikow);

                        if (null != wynikOjca)
                        {
                            wagaMnozona  = wagaMnozona * Convert.ToDecimal(wynikOjca.Waga);
                            idKryterium2 = wynikOjca.Kryterium2;
                        }
                        else
                        {
                            break;
                        }
                    } while (idKryterium2 != idCelu);

                    waga = waga + wagaMnozona;
                }

                listaWagWariantow.Add(kryteriumWariant.ID, waga);
            }

            WynikPanel wynikPanel = new WynikPanel(listaWagWariantow, idCelu, MAKSYMALNA_WAGA, buttonMenu);

            mainForm.Controls.Add(wynikPanel);
            wynikPanel.Visible = true;
            buttonMenu.setWynikPanel(wynikPanel);
            buttonMenu.setAktualnyPanel(wynikPanel);
            buttonMenu.setControlEnable(buttonMenu.getButton("Dalej"), false);
            buttonMenu.setControlEnable(buttonMenu.getButton("Dodaj"), false);
            buttonMenu.setControlEnable(buttonMenu.getButton("Usuń"), false);
            Visible = false;
        }
Example #8
0
        private void uzupelnijProblemWarianty()
        {
            problemTreeView.Nodes.AddRange(new TreeNode[] { listaNodow });

            DataTable tabelaWariantow = KryteriumController.pobierzTabeleWariantow(idCelu);

            if (tabelaWariantow.Rows.Count > 0)
            {
                wariantyListBox.DataSource    = tabelaWariantow;
                wariantyListBox.ValueMember   = "ID_Wariantu";
                wariantyListBox.DisplayMember = "Nazwa";
            }
        }
Example #9
0
        private void zapiszButton_Click(object sender, EventArgs e)
        {
            if (celRadioButton.Checked || kryteriumRadioButton.Checked)
            {
                KryteriumController.edytujKryterium(kryteriumID, nazwaTextBox.Text, opisRichTextBox.Text, false);
            }
            else if (wariantRadioButton.Checked)
            {
                KryteriumController.edytujKryterium(wariantID, nazwaTextBox.Text, opisRichTextBox.Text, true);
            }

            pobierzCele();
            problemDataGridView.Rows[selectedIndex].Selected = true;
            wyczyscKontrolki();
        }
        public static void setChartData(Chart wynikChart, int idCelu, Dictionary <int, decimal> listaWariantowWag)
        {
            wynikChart.ChartAreas.Clear();
            wynikChart.Legends.Clear();
            wynikChart.Series.Clear();
            wynikChart.Titles.Clear();

            ExpertHelperDataContext db = new ExpertHelperDataContext();

            Kryterium cel = KryteriumController.pobierzKryterium(idCelu, false);

            ChartArea area = new ChartArea("Ranking");

            area.AxisY.Interval = 0.1;
            area.AxisY.Maximum  = 1;
            wynikChart.ChartAreas.Add(area);

            Legend legend = new Legend("Warianty");

            legend.LegendStyle = LegendStyle.Column;
            wynikChart.Legends.Add(legend);

            foreach (KeyValuePair <int, decimal> wariant in listaWariantowWag)
            {
                Kryterium kryterium = KryteriumController.pobierzKryterium(wariant.Key, db, true);

                Series wykres = new Series(kryterium.Nazwa, 1);
                wynikChart.Series.Add(wykres);
                wykres.ChartType = SeriesChartType.Column;
                wykres.ChartArea = "Ranking";

                wykres.Label = kryterium.Nazwa;

                wynikChart.Series[kryterium.Nazwa].Points.AddXY(kryterium.Nazwa, Math.Round(Convert.ToDouble(wariant.Value), 3));
                wynikChart.Series[kryterium.Nazwa].Points[0].AxisLabel = "Ranking końcowy";
                wynikChart.Series[kryterium.Nazwa].Label = wariant.Value.ToString();
            }

            Title tytul = new Title("Ranking końcowy dla celu: " + cel.Nazwa);
            Font  font  = new Font(tytul.Font.FontFamily, 20, FontStyle.Bold);

            tytul.Font = font;

            wynikChart.Titles.Add(tytul);

            wynikChart.Visible = true;
        }
Example #11
0
 public WagiPanel(Form mainForm, ButtonMenu buttonMenu, int idCelu)
 {
     InitializeComponent();
     this.mainForm   = mainForm;
     this.idCelu     = idCelu;
     this.buttonMenu = buttonMenu;
     problemTreeView.Nodes.Clear();
     wariantyListBox.Items.Clear();
     listaNodow = KryteriumController.pobierzDrzewo(idCelu);
     uzupelnijProblemWarianty();
     listaIdKryteriow             = KryteriumController.pobierzListeIdKryteriow(idCelu);
     listaNazwKryteriow           = KryteriumController.pobierzListeNazwKryteriow(idCelu);
     wartoscNumericUpDown.Maximum = MAKSYMALNA_WAGA;
     sliderTrackBar.SetRange(0, MAKSYMALNA_WAGA * 100);
     buttonMenu.setControlEnable(buttonMenu.getButton("Dodaj"), false);
     buttonMenu.setControlEnable(buttonMenu.getButton("Usuń"), false);
     buttonMenu.setControlEnable(buttonMenu.getButton("Dalej"), false);
 }
Example #12
0
        private void wariantyListBox_SelectedIndexChanged(object sender, EventArgs e)
        {
            wyczyscKontrolki();

            if (null != wariantyListBox.SelectedValue)
            {
                bool czyLiczba = int.TryParse(wariantyListBox.SelectedValue.ToString(), out wariantID);

                if (czyLiczba)
                {
                    Kryterium wariant = KryteriumController.pobierzKryterium(wariantID, true);

                    if (null != wariant)
                    {
                        nazwaTextBox.Text = wariant.Nazwa;
                        opisRichTextBox.AppendText(wariant.Opis);
                    }
                }
            }
        }
Example #13
0
        private void pobierzWynikiDlaCelu(int idCelu)
        {
            ExpertHelperDataContext db = new ExpertHelperDataContext();

            Dictionary <int, String> listaKryteriow = KryteriumController.pobierzListeNazwKryteriow(idCelu);

            List <WynikCelu> listaWynikowCelu = WynikCeluController.pobierzListeWynikow(idCelu, db);

            if (listaWynikowCelu.Count > 0)
            {
                double max = listaWynikowCelu.Max(w => w.Waga);

                DataTable dt = stworzStruktureWynikow(listaWynikowCelu, listaKryteriow, idCelu);

                DataRow dr = dt.NewRow();

                dr[listaKryteriow[idCelu]] = "Wynik";

                foreach (WynikCelu w in listaWynikowCelu)
                {
                    dr[listaKryteriow[w.ID_Wariantu]] = w.Waga;
                }

                dt.Rows.Add(dr);

                wynikiDataGridView.DataSource = dt;

                foreach (DataGridViewRow row in wynikiDataGridView.Rows)
                {
                    foreach (DataGridViewColumn col in wynikiDataGridView.Columns)
                    {
                        object value = wynikiDataGridView.Rows[row.Index].Cells[col.Index].Value;

                        if (null != value && value.ToString() == max.ToString())
                        {
                            wynikiDataGridView.Rows[row.Index].Cells[col.Index].Style.BackColor = Color.LightGreen;
                        }
                    }
                }
            }
        }
Example #14
0
        private void pobierzCele()
        {
            DataTable dt = KryteriumController.pobierzTabeleCelow();

            problemDataGridView.DataSource = dt;

            problemDataGridView.AllowUserToAddRows       = true;
            problemDataGridView.AllowUserToResizeColumns = false;

            if (problemDataGridView.Columns.Count > 1)
            {
                problemDataGridView.Columns[0].Width   = 43;
                problemDataGridView.Columns[3].Width   = 235;
                problemDataGridView.Columns[1].Visible = false;
                problemDataGridView.Columns[2].Visible = false;
                problemDataGridView.Columns[4].Visible = false;
                problemDataGridView.Columns[5].Visible = false;
                problemDataGridView.Columns[6].Visible = false;
                problemDataGridView.Columns[7].Visible = false;
            }
        }
Example #15
0
        private void wagiButton_Click(object sender, EventArgs e)
        {
            DataTable dt = new DataTable();

            dt.Columns.Add(listaNazwKryteriow[idKryterium]);
            dt.Columns.Add("Waga");

            List <Kryterium> listaPodkryteriowWariantow = KryteriumController.pobierzListePodkryteriow(idKryterium, idCelu);

            if (listaPodkryteriowWariantow.Count == 0)
            {
                listaPodkryteriowWariantow = KryteriumController.pobierzListeWariantow(idKryterium);
            }

            List <Wynik> listaWynikow = WynikController.pobierzWynikiKryterium(idCelu, idKryterium, listaPodkryteriowWariantow);

            if (listaWynikow.Count > 0)
            {
                listaWynikow.ForEach(w =>
                {
                    DataRow dr = dt.NewRow();
                    dr[0]      = listaNazwKryteriow[w.Kryterium1];
                    dr["Waga"] = w.Waga;
                    dt.Rows.Add(dr);
                });

                if (dt.Rows.Count > 0)
                {
                    wagiDataGridView.DataSource = dt;
                }
            }
            else
            {
                MessageBox.Show("Nie obliczono wyników dla danego kryterium!", "Informacja", MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
        }
Example #16
0
        private void usunKryterium()
        {
            if (null != kryteriaTreeView.SelectedNode)
            {
                ExpertHelperDataContext db = new ExpertHelperDataContext();

                TreeNode item = kryteriaTreeView.SelectedNode;
                int      id   = int.Parse(item.Name.ToString());

                DialogResult result = MessageBox.Show("Czy na pewno chcesz usunąć zaznaczone kryterium i wszystkie jego podkryteria?", "Usuń", MessageBoxButtons.YesNo, MessageBoxIcon.Question);

                if (result == DialogResult.Yes)
                {
                    List <int> listaPodkryteriow = KryteriumController.stworzListeDoUsuniecia(id, celID);

                    foreach (int idPodkryterium in listaPodkryteriow)
                    {
                        KryteriumController.usunKryterium(idPodkryterium, db);
                    }
                }
            }

            pobierzCele();
        }
Example #17
0
        public static List <Wynik> pobierzWektorWag(int idCelu, int idKryterium)
        {
            List <Kryterium> listaWariantow = KryteriumController.pobierzListeWariantow(idCelu);

            return(WynikController.pobierzWynikiKryterium(idCelu, idKryterium, listaWariantow));
        }