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); }
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; }
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); } }
public static List <Wynik> pobierzWektorWag(int idCelu, int idKryterium) { List <Kryterium> listaWariantow = KryteriumController.pobierzListeWariantow(idCelu); return(WynikController.pobierzWynikiKryterium(idCelu, idKryterium, listaWariantow)); }