コード例 #1
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);
                }
            }
        }
コード例 #2
0
ファイル: ButtonMenu.cs プロジェクト: trencik91/ExpertHelper
        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();
                }
            }
        }
コード例 #3
0
        public static DataTable pobierzTabeleWariantow(int idCelu)
        {
            DataTable dt = new DataTable();

            dt.Columns.Add("ID_Wariantu");
            dt.Columns.Add("Nazwa");
            dt.Columns.Add("Opis");

            ExpertHelperDataContext db = new ExpertHelperDataContext();

            var lista = from w in db.Kryteriums
                        where w.ID_Rodzica == idCelu && w.Czy_Wariant
                        select w.ID;

            foreach (var w in lista)
            {
                Kryterium wariant = pobierzKryterium(w, db, true);

                if (null != wariant)
                {
                    DataRow dr = dt.NewRow();
                    dr["ID_Wariantu"] = wariant.ID;
                    dr["Nazwa"]       = wariant.Nazwa;
                    dr["Opis"]        = wariant.Opis;

                    dt.Rows.Add(dr);
                }
            }

            return(dt);
        }
コード例 #4
0
        private void problemDataGridView_SelectionChanged(object sender, EventArgs e)
        {
            ExpertHelperDataContext db = new ExpertHelperDataContext();

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

                    int idCelu = int.Parse(dataRow.Cells[1].Value.ToString());

                    listaWariantowWag = WynikCeluController.pobierzMapeWynikow(idCelu, db);

                    WykresController.setChartData(wynikChart, idCelu, listaWariantowWag);

                    if (listaWariantowWag.Count == 0)
                    {
                        MessageBox.Show("Brak wyników dla danego celu!", "Informacja", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    }
                }
                catch
                {
                    MessageBox.Show("Zaznacz wiersz z danymi!", "Błąd", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
            }
        }
コード例 #5
0
        public static List <Wynik> pobierzWynikiCelu(int idCelu)
        {
            ExpertHelperDataContext db = new ExpertHelperDataContext();

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

            var lista = from w in db.Wyniks
                        where w.KryteriumGlowne == idCelu
                        select w;

            foreach (var w in lista)
            {
                Wynik wynik = new Wynik()
                {
                    ID = w.ID,
                    KryteriumGlowne = w.KryteriumGlowne,
                    Kryterium1      = w.Kryterium1,
                    Kryterium2      = w.Kryterium2,
                    Waga            = w.Waga
                };

                listaWynikow.Add(wynik);
            }

            return(listaWynikow);
        }
コード例 #6
0
        public static void dodajListeWag(IEnumerable <Waga> listaWag)
        {
            ExpertHelperDataContext db = new ExpertHelperDataContext();

            foreach (Waga w in listaWag)
            {
                int idWagi = sprawdzCzyWagaIstnieje(w, db);

                if (idWagi == 0)
                {
                    db.Wagas.InsertOnSubmit(w);
                }
                else
                {
                    Waga waga = pobierzWage(idWagi, db);

                    if (null != waga)
                    {
                        waga.Waga1 = w.Waga1;
                    }
                }
            }

            db.SubmitChanges();
        }
コード例 #7
0
        public static void dodajListeWynikow(IEnumerable <Wynik> listaWynikow)
        {
            ExpertHelperDataContext db = new ExpertHelperDataContext();

            foreach (Wynik w in listaWynikow)
            {
                int idWyniku = sprawdzCzyWynikIstnieje(w, db);

                if (idWyniku == 0)
                {
                    db.Wyniks.InsertOnSubmit(w);
                }
                else
                {
                    Wynik wynik = pobierzWynik(idWyniku, db);

                    if (null != wynik)
                    {
                        wynik.Waga = w.Waga;
                    }
                }
            }

            db.SubmitChanges();
        }
コード例 #8
0
        public static WynikCelu pobierzWynik(int idWyniku, ExpertHelperDataContext db)
        {
            var wynik = (from w in db.WynikCelus
                         where w.ID == idWyniku
                         select w).FirstOrDefault();

            return(wynik);
        }
コード例 #9
0
        public static DataTable pobierzListeKryteriow()
        {
            DataTable listaKryteriow = new DataTable("Kryterium");

            listaKryteriow.Rows.Clear();
            listaKryteriow.Columns.Clear();
            listaKryteriow.Columns.Add("Lp");
            listaKryteriow.Columns.Add("ID");
            listaKryteriow.Columns.Add("ID_Rodzica");
            listaKryteriow.Columns.Add("Cel");
            listaKryteriow.Columns.Add("Opis");
            listaKryteriow.Columns.Add("Liczba_Podkryteriow");
            listaKryteriow.Columns.Add("Czy_Wariant");
            listaKryteriow.Columns.Add("ID_Celu");

            ExpertHelperDataContext db = new ExpertHelperDataContext();

            var lista = from d in db.Kryteriums
                        select new
            {
                id                 = d.ID,
                idRodzica          = d.ID_Rodzica,
                idCelu             = d.ID_Celu,
                cel                = d.Nazwa,
                opis               = d.Opis,
                liczbaPodkryteriow = d.Liczba_Podkryteriow,
                czyWariant         = d.Czy_Wariant
            };

            int lp = 1;

            foreach (var cel in lista)
            {
                DataRow dr = listaKryteriow.NewRow();

                if (cel.idCelu == cel.id)
                {
                    dr["Lp"] = lp;
                    lp++;
                }
                else
                {
                    dr["Lp"] = 0;
                }

                dr["ID"]                  = cel.id;
                dr["ID_Rodzica"]          = cel.idRodzica;
                dr["Cel"]                 = cel.cel;
                dr["Opis"]                = cel.opis;
                dr["Liczba_Podkryteriow"] = cel.liczbaPodkryteriow;
                dr["Czy_Wariant"]         = cel.czyWariant;
                dr["ID_Celu"]             = cel.idCelu;

                listaKryteriow.Rows.Add(dr);
            }

            return(listaKryteriow);
        }
コード例 #10
0
        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);
        }
コード例 #11
0
ファイル: WynikPanel.cs プロジェクト: trencik91/ExpertHelper
        private void zapiszButton_Click(object sender, EventArgs e)
        {
            ExpertHelperDataContext db = new ExpertHelperDataContext();

            foreach (KeyValuePair <int, decimal> wariant in listaWariantowWag)
            {
                WynikCeluController.dodajWynikCelu(idCelu, wariant.Key, wariant.Value, db);
            }
        }
コード例 #12
0
        public static void usunKryterium(int id, ExpertHelperDataContext db)
        {
            Kryterium kryterium = pobierzKryteriumWariant(id, db);

            if (null != kryterium)
            {
                kryterium.ID_Rodzica = -1;
                db.SubmitChanges();
            }
        }
コード例 #13
0
        public static void dodajWynikCelu(int idCelu, int idWariantu, decimal waga, ExpertHelperDataContext db)
        {
            WynikCelu wynik = new WynikCelu()
            {
                ID_Celu     = idCelu,
                ID_Wariantu = idWariantu,
                Waga        = Convert.ToDouble(waga)
            };

            db.WynikCelus.InsertOnSubmit(wynik);
            db.SubmitChanges();
        }
コード例 #14
0
        public static void edytujWage(int kryteriumGlowne, int idKryteriumJeden, int idKryteriumDwa, double wartosc)
        {
            ExpertHelperDataContext db = new ExpertHelperDataContext();

            Waga waga = pobierzWage(kryteriumGlowne, idKryteriumJeden, idKryteriumDwa, db);

            if (null != waga)
            {
                waga.Waga1 = wartosc;

                db.SubmitChanges();
            }
        }
コード例 #15
0
        public static int sprawdzCzyWynikIstnieje(int idCelu, int idWariantu, ExpertHelperDataContext db)
        {
            var idWyniku = (from w in db.WynikCelus
                            where w.ID_Celu == idCelu && w.ID_Wariantu == idWariantu
                            select w).FirstOrDefault();

            if (null != idWyniku)
            {
                return(idWyniku.ID);
            }

            return(0);
        }
コード例 #16
0
        public static int sprawdzCzyWagaIstnieje(Waga waga, ExpertHelperDataContext db)
        {
            var idWagi = (from w in db.Wagas
                          where w.KryteriumGlowne == waga.KryteriumGlowne && w.Kryterium1 == waga.Kryterium1 && w.Kryterium2 == waga.Kryterium2
                          select w).FirstOrDefault();

            if (null != idWagi)
            {
                return(idWagi.ID);
            }

            return(0);
        }
コード例 #17
0
        public static Waga pobierzWage(int idWagi, ExpertHelperDataContext db)
        {
            var waga = (from w in db.Wagas
                        where w.ID == idWagi
                        select w).FirstOrDefault();

            if (null != waga)
            {
                return(waga);
            }

            return(null);
        }
コード例 #18
0
        public static Dictionary <int, decimal> pobierzMapeWynikow(int idCelu, ExpertHelperDataContext db)
        {
            Dictionary <int, decimal> mapaWynikow = new Dictionary <int, decimal>();

            List <WynikCelu> listaWynikow = pobierzListeWynikow(idCelu, db);

            if (listaWynikow.Count > 0)
            {
                listaWynikow.ForEach(w => mapaWynikow.Add(w.ID_Wariantu, Convert.ToDecimal(w.Waga)));
            }

            return(mapaWynikow);
        }
コード例 #19
0
        public static Kryterium pobierzKryteriumWariant(int id, ExpertHelperDataContext db)
        {
            var kryterium = (from kr in db.Kryteriums
                             where kr.ID == id
                             select kr).FirstOrDefault();

            if (null != kryterium)
            {
                return(kryterium);
            }

            return(null);
        }
コード例 #20
0
        public static int sprawdzCzyWynikIstnieje(Wynik wynik, ExpertHelperDataContext db)
        {
            var idWyniku = (from w in db.Wyniks
                            where w.KryteriumGlowne == wynik.KryteriumGlowne && w.Kryterium1 == wynik.Kryterium1 && w.Kryterium2 == wynik.Kryterium2
                            select w).FirstOrDefault();

            if (null != idWyniku)
            {
                return(idWyniku.ID);
            }

            return(0);
        }
コード例 #21
0
        public static Wynik pobierzWynik(int idWyniku, ExpertHelperDataContext db)
        {
            var wynik = (from w in db.Wyniks
                         where w.ID == idWyniku
                         select w).FirstOrDefault();

            if (null != wynik)
            {
                return(wynik);
            }

            return(null);
        }
コード例 #22
0
        public static void dodajLiczbePodkryteriow(int idKryterium, bool czyWariant)
        {
            ExpertHelperDataContext db = new ExpertHelperDataContext();

            Kryterium kryterium = pobierzKryterium(idKryterium, db, czyWariant);

            if (null != kryterium)
            {
                int liczbaPodkryteriow = kryterium.Liczba_Podkryteriow + 1;
                kryterium.Liczba_Podkryteriow = liczbaPodkryteriow;

                db.SubmitChanges();
            }
        }
コード例 #23
0
        public static void edytujKryterium(int id, String nazwa, String opis, bool czyWariant)
        {
            ExpertHelperDataContext db = new ExpertHelperDataContext();

            Kryterium kryterium = pobierzKryterium(id, db, czyWariant);

            if (null != kryterium)
            {
                kryterium.Nazwa = nazwa;
                kryterium.Opis  = opis;
            }

            db.SubmitChanges();
        }
コード例 #24
0
        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;
        }
コード例 #25
0
        public static Dictionary <int, String> pobierzListeNazwKryteriow(int idCelu)
        {
            Dictionary <int, String> listaIdKryteriow = new Dictionary <int, String>();

            ExpertHelperDataContext db = new ExpertHelperDataContext();

            var lista = from w in db.Kryteriums
                        where w.ID_Celu == idCelu
                        select w;

            foreach (var w in lista)
            {
                listaIdKryteriow.Add(w.ID, w.Nazwa);
            }

            return(listaIdKryteriow);
        }
コード例 #26
0
        public static TreeNode pobierzDrzewo(int idRoot)
        {
            TreeNode rootItem          = new TreeNode();
            ExpertHelperDataContext db = new ExpertHelperDataContext();

            Kryterium rootKryterium = pobierzKryterium(idRoot, db, false);

            if (null != rootKryterium)
            {
                rootItem.Name = rootKryterium.ID.ToString();
                rootItem.Text = rootKryterium.Nazwa;
            }

            stworzDrzewo(rootItem, idRoot);

            return(rootItem);
        }
コード例 #27
0
        public static List <Kryterium> pobierzListeWariantow(int idCelu)
        {
            List <Kryterium> listaWariantow = new List <Kryterium>();

            ExpertHelperDataContext db = new ExpertHelperDataContext();

            var lista = from w in db.Kryteriums
                        where w.ID_Rodzica == idCelu && w.Czy_Wariant
                        select w.ID;

            foreach (var w in lista)
            {
                listaWariantow.Add(pobierzKryterium(w, db, true));
            }

            return(listaWariantow);
        }
コード例 #28
0
        public static List <Wynik> pobierzWynikiKryterium(int idCelu, int idKryterium, List <Kryterium> listaPodkryteriowWariantow)
        {
            ExpertHelperDataContext db = new ExpertHelperDataContext();

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

            foreach (Kryterium k in listaPodkryteriowWariantow)
            {
                Wynik wynik = pobierzWynik(idCelu, k.ID, idKryterium, db);

                if (null != wynik)
                {
                    listaWynikow.Add(wynik);
                }
            }

            return(listaWynikow);
        }
コード例 #29
0
        public static Kryterium dodajKryterium(String nazwa, String opis, int idRodzica, bool czyWariant, int idCelu)
        {
            ExpertHelperDataContext db = new ExpertHelperDataContext();

            if (idCelu == 0)
            {
                Kryterium kryterium = new Kryterium
                {
                    Nazwa               = nazwa,
                    Opis                = opis,
                    Data_utworzenia     = DateTime.Now,
                    ID_Rodzica          = idRodzica,
                    Liczba_Podkryteriow = 0,
                    Czy_Wariant         = czyWariant
                };

                db.Kryteriums.InsertOnSubmit(kryterium);
                db.SubmitChanges();

                kryterium.ID_Celu = kryterium.ID;
                db.SubmitChanges();

                return(kryterium);
            }
            else
            {
                Kryterium kryterium = new Kryterium
                {
                    Nazwa               = nazwa,
                    Opis                = opis,
                    Data_utworzenia     = DateTime.Now,
                    ID_Rodzica          = idRodzica,
                    ID_Celu             = idCelu,
                    Liczba_Podkryteriow = 0,
                    Czy_Wariant         = czyWariant
                };

                db.Kryteriums.InsertOnSubmit(kryterium);
                db.SubmitChanges();

                return(kryterium);
            }
        }
コード例 #30
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;
                        }
                    }
                }
            }
        }