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 #2
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 #3
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 #4
0
        public static List <Wynik> pobierzWektorWag(int idCelu, int idKryterium)
        {
            List <Kryterium> listaWariantow = KryteriumController.pobierzListeWariantow(idCelu);

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