private void dataGridViewStatistika_SelectionChanged(object sender, EventArgs e) { foreach (var series in chartStatistika.Series) { series.Points.Clear(); } putovanje selektiranoPutovanje = putovanjeBindingSource.Current as putovanje; if (selektiranoPutovanje != null) { int brojac = 0; List <string> lista = PrikaziStatistiku(selektiranoPutovanje); chartStatistika.Series[0].LegendText = selektiranoPutovanje.naziv; foreach (var item in lista) { if (brojac == 0) { chartStatistika.Series["Putovanje"].Points.AddXY("Broj osoba", item); } else { using (var bp = new EntitiesWeTravel()) { int brojDodatnih = (from rezervacijaDodatne in bp.PogledRezervacijaDodatnihAktivnosti join dodatne in bp.dodatna_aktivnost on rezervacijaDodatne.dodatne_aktivnosti_id equals dodatne.dodatna_aktivnost_id where dodatne.naziv == item select rezervacijaDodatne.dodatne_aktivnosti_id).Count(); chartStatistika.Series["Putovanje"].Points.AddXY(item, brojDodatnih * selektiranoPutovanje.broj_osoba); } } brojac++; } chartStatistika.DataSource = putovanjeBindingSource; } }
/// <summary> /// Metoda koja vraća listu podataka koji su potrebni za prikaz statistike. /// </summary> /// <param name="put"></param> /// <returns></returns> private List <string> PrikaziStatistiku(putovanje put) { BindingList <rezervacija> listaRezervacija = null; BindingList <dodatna_aktivnost> listaDodatnihAktivnosti = null; using (var bp = new EntitiesWeTravel()) { bp.putovanje.Attach(put); listaRezervacija = new BindingList <rezervacija>(put.rezervacija.ToList()); listaDodatnihAktivnosti = new BindingList <dodatna_aktivnost>(put.dodatna_aktivnost.ToList()); } List <string> listaStatistika = new List <string>(); int brojRezervacija = listaRezervacija.Count(); string brojOsoba = (brojRezervacija * put.broj_osoba).ToString(); listaStatistika.Add(brojOsoba); foreach (var item in listaDodatnihAktivnosti) { listaStatistika.Add(item.naziv); } return(listaStatistika); }