private void btnSpasi_Click(object sender, EventArgs e) { DialogResult dres = MessageBox.Show("Da li ste sigurni da želite spasiti stanicu?", "Spasiti?", MessageBoxButtons.YesNo, MessageBoxIcon.Question); if (dres == DialogResult.Yes) { try { if (novaStanica) { DAL.Entiteti.Stanica stanica = new DAL.Entiteti.Stanica(tbNaziv.Text, tbMjesto.Text); stanica.SifraStanice = ks.kreirajStanicu(stanica); pozvanOd.dodanaStanica(stanica); } else { odabranaStanica.Naziv = tbNaziv.Text; odabranaStanica.Mjesto = tbMjesto.Text; ks.updateStanice(odabranaStanica); pozvanOd.promjenjenaStanica(); } MessageBox.Show("Promjene su uspješno izvršene!"); } catch (Exception ex) { MessageBox.Show(ex.Message); return; } } }
public List <Entiteti.VoznjaNaStanici> vratiDolazneVoznjeStanice(DAL.Entiteti.Stanica stanica) { int indeks, minute, sati; List <Entiteti.VoznjaNaStanici> voznjeNaStanici = new List <Entiteti.VoznjaNaStanici>(); foreach (DAL.Entiteti.Linija linija in kolekcijaLinija.Linije) { indeks = linija.sadrziStanicu(stanica); if (indeks >= 0) { foreach (DAL.Entiteti.RasporedVoznje rv in linija.RasporediVoznje) { sati = rv.Vrijeme.Hour; minute = rv.Vrijeme.Minute; minute += linija.TrajanjeDoDolaska[indeks]; sati += (minute / 60); minute %= 60; sati %= 24; voznjeNaStanici.Add(new Entiteti.VoznjaNaStanici(linija.NazivLinije, sati, minute)); } } } return(voznjeNaStanici); }
private void updateujCijenu() { textBox4.Text = "0 KM"; if (listBox1.SelectedItems.Count > 0 && comboBox2.SelectedIndex > -1 && comboBox3.SelectedIndex > comboBox2.SelectedIndex) { DAL.Entiteti.Stanica prvaStanica = staniceUVoznji[comboBox2.SelectedIndex]; DAL.Entiteti.Stanica drugaStanica = staniceUVoznji[comboBox3.SelectedIndex]; DAL.Entiteti.Voznja voznja = voznje[listBox1.SelectedIndices[0]]; DAL.Entiteti.Linija odabranaLinija = comboBox1.SelectedItem as DAL.Entiteti.Linija; double cijena = odabranaLinija.vratiCijenu(prvaStanica, drugaStanica); List <double> cijene = new List <double>(); for (int i = 0; i < odabranaMjesta.Count; i++) { cijene.Add(cijena * (1 - tipPopusta[comboBox4.SelectedIndex].VrijednostPopusta / 100.0)); } try { if (tipPopusta[comboBox4.SelectedIndex].VrijednostPopusta == 0) { DAL.Entiteti.KupacKarte kupac = new DAL.Entiteti.KupacKarte(textBox2.Text, prvaStanica, drugaStanica, voznja, odabranaMjesta, cijene, System.DateTime.Now); textBox4.Text = kupac.proracunajCijenu().ToString() + " KM"; } else { DAL.Entiteti.KupacSaPopustom kupac = new DAL.Entiteti.KupacSaPopustom(textBox2.Text, prvaStanica, drugaStanica, voznja, odabranaMjesta, cijene, System.DateTime.Now, tipPopusta[comboBox4.SelectedIndex].VrijednostPopusta, textBox3.Text, (DAL.TipoviPodataka.TipoviKupaca)(tipPopusta[comboBox4.SelectedIndex].Indeks)); textBox4.Text = kupac.proracunajCijenu().ToString() + " KM"; } } catch (Exception ex) { MessageBox.Show(ex.Message); } } }
public void brisiStanicu(DAL.Entiteti.Stanica s) { DAL.DAL d = DAL.DAL.Instanca; DAL.DAL.StanicaDAO sd = d.getDAO.getStaniceDAO(); sd.delete(s); stanice.Remove(s); }
public string dajNajjeftinijiPut(long sifraPocetneStanice, long sifraKrajnjeStanice) { DAL.DAL d = DAL.DAL.Instanca; d.kreirajKonekciju(); DAL.Entiteti.Stanica pocetnaStanica = d.getDAO.getStaniceDAO().getById(sifraPocetneStanice); DAL.Entiteti.Stanica krajnjaStanica = d.getDAO.getStaniceDAO().getById(sifraKrajnjeStanice); DesktopAplikacija.Entiteti.Put put = DesktopAplikacija.Informisanje.InformisanjeKomande.vratiNajjeftinijiPut(pocetnaStanica, krajnjaStanica); return(put.ToString().Replace("\n", "; ")); }
public double dajCijenuJedneKarte(long sifraLinije, long sifraPocetneStanice, long sifraKrajnjeStanice) { DAL.DAL d = DAL.DAL.Instanca; d.kreirajKonekciju(); DAL.Entiteti.Linija odabranaLinija = d.getDAO.getLinijaDAO().getById(sifraLinije); DAL.Entiteti.Stanica prvaStanica = d.getDAO.getStaniceDAO().getById(sifraPocetneStanice); DAL.Entiteti.Stanica drugaStanica = d.getDAO.getStaniceDAO().getById(sifraKrajnjeStanice); return(odabranaLinija.vratiCijenu(prvaStanica, drugaStanica)); }
public int dajPolozajStanice(DAL.Entiteti.Stanica s) { for (int i = 0; i < stanice.Count; i++) { if (stanice[i].SifraStanice == s.SifraStanice) { return(i); } } return(-1); }
private int dajIndexStanice(DAL.Entiteti.Stanica stan) { for (int i = 0; i < staniceUVoznji.Count; i++) { if (staniceUVoznji[i].SifraStanice == stan.SifraStanice) { return(i); } } throw new Exception("Greška sa stanicama"); }
private bool nijeDodanaStanica(DAL.Entiteti.Stanica s) { foreach (DataGridViewRow dgvr in dgvStanice.Rows) { if ((dgvr.Tag as DAL.Entiteti.Stanica).SifraStanice == s.SifraStanice) { return(false); } } return(true); }
public UredjivanjeStanice(PregledStanica us, bool nova = true, DAL.Entiteti.Stanica s = null) { InitializeComponent(); novaStanica = nova; pozvanOd = us; if (!nova) { odabranaStanica = s; tbNaziv.Text = s.Naziv; tbMjesto.Text = s.Mjesto; } }
private void button5_Click(object sender, EventArgs e) { if (textBox2.Text == "" || (textBox3.Enabled && textBox3.Text == "")) { MessageBox.Show("Molimo unesite sve podatke"); } else { if (listBox1.SelectedItems.Count > 0 && comboBox2.SelectedIndex > -1 && comboBox3.SelectedIndex > comboBox2.SelectedIndex) { DAL.Entiteti.Stanica prvaStanica = staniceUVoznji[comboBox2.SelectedIndex]; DAL.Entiteti.Stanica drugaStanica = staniceUVoznji[comboBox3.SelectedIndex]; DAL.Entiteti.Voznja voznja = voznje[listBox1.SelectedIndices[0]]; DAL.Entiteti.Linija odabranaLinija = comboBox1.SelectedItem as DAL.Entiteti.Linija; double cijena = odabranaLinija.vratiCijenu(prvaStanica, drugaStanica); List <double> cijene = new List <double>(); for (int i = 0; i < odabranaMjesta.Count; i++) { cijene.Add(cijena * (1 - tipPopusta[comboBox4.SelectedIndex].VrijednostPopusta / 100.0)); } try { if (tipPopusta[comboBox4.SelectedIndex].VrijednostPopusta == 0) { DAL.Entiteti.KupacKarte kupac = new DAL.Entiteti.KupacKarte(textBox2.Text, prvaStanica, drugaStanica, voznja, odabranaMjesta, cijene, System.DateTime.Today); d.getDAO.getKupacKarteDAO().create(kupac); MessageBox.Show("Obavljeno"); StampacKarti stampac = new StampacKarti(kupac, staniceUVoznji, logovaniKorisnik); stampac.DokumentZaPrintanje.PrinterSettings = printDialog.PrinterSettings; stampac.Stampaj(); } else { DAL.Entiteti.KupacSaPopustom kupac = new DAL.Entiteti.KupacSaPopustom(textBox2.Text, prvaStanica, drugaStanica, voznja, odabranaMjesta, cijene, System.DateTime.Today, tipPopusta[comboBox4.SelectedIndex].VrijednostPopusta, textBox3.Text, (DAL.TipoviPodataka.TipoviKupaca)(tipPopusta[comboBox4.SelectedIndex].Indeks)); d.getDAO.getKupacKarteSPopustomDAO().create(kupac); MessageBox.Show("Obavljeno"); StampacKarti stampac = new StampacKarti(kupac, staniceUVoznji, logovaniKorisnik); stampac.DokumentZaPrintanje.PrinterSettings = printDialog.PrinterSettings; stampac.Stampaj(); } updateujBrojSlobodnihSjedista(); } catch (Exception ex) { MessageBox.Show(ex.Message); } } } }
public bool linijeSadrzeStanicu(DAL.Entiteti.Stanica s) { foreach (DAL.Entiteti.Linija l in linije) { foreach (DAL.Entiteti.Stanica sl in l.Stanice) { if (sl.SifraStanice == s.SifraStanice) { return(true); } } } return(false); }
private bool ispunjavaUslove(DAL.Entiteti.KupacKarte kupac) { if (!(tbImeIPrez.Text == "") && !(tbImeIPrez.Text == kupac.Ime)) { return(false); } if (cbLinije.SelectedIndex > -1) { DAL.Entiteti.Linija linija = cbLinije.SelectedItem as DAL.Entiteti.Linija; bool valja = false; foreach (DAL.Entiteti.Voznja voznja in linija.Voznje) { if (voznja.SifraVoznje == kupac.Voznja.SifraVoznje) { valja = true; } } if (!valja) { return(false); } } if (cbVoznje.SelectedIndex > -1) { DAL.Entiteti.Voznja voznja = cbVoznje.SelectedItem as DAL.Entiteti.Voznja; if (voznja.SifraVoznje != kupac.Voznja.SifraVoznje) { return(false); } } if (cbPocStan.SelectedIndex > -1) { DAL.Entiteti.Stanica stanica = cbPocStan.SelectedItem as DAL.Entiteti.Stanica; if (stanica.SifraStanice != kupac.PocetnaStanica.SifraStanice) { return(false); } } if (cbKrajStan.SelectedIndex > -1) { DAL.Entiteti.Stanica stanica = cbKrajStan.SelectedItem as DAL.Entiteti.Stanica; if (stanica.SifraStanice != kupac.KrajnjaStanica.SifraStanice) { return(false); } } return(true); }
public Entiteti.Put vratiNajjeftinijiPut(DAL.Entiteti.Stanica pocetnaStanica, DAL.Entiteti.Stanica krajnjaStanica) { long velicina = ks.dajMaksimalnuSifru(); velicina++; List <edge>[] v = new List <edge> [velicina]; for (int i = 0; i < velicina; i++) { v[i] = new List <edge>(); } napraviGraf(ref v, velicina); DesktopAplikacija.Entiteti.Put put = dijkstra(v, pocetnaStanica, krajnjaStanica, velicina); return(put); }
private void btnDodajStanicu_Click(object sender, EventArgs e) { int mjestoDodavanja = mjestoDodavanjaStanice(); DAL.Entiteti.Stanica s = ks.Stanice[cbStanice.SelectedIndex]; stanice.Insert(mjestoDodavanja, s); moguceStanice.RemoveAt(cbStanice.SelectedIndex); dgvStanice.Rows.Insert(mjestoDodavanja, 1); dgvStanice.Rows[mjestoDodavanja].Cells[0].Value = s.SifraStanice; dgvStanice.Rows[mjestoDodavanja].Cells[1].Value = s.Naziv; dgvStanice.Rows[mjestoDodavanja].Tag = s; popuniComboBoxStanicama(); popuniRedneBrojeve(); rbKraj.Checked = true; dgvStanice.Rows[0].ReadOnly = true; dgvStanice.Rows[dgvStanice.RowCount - 1].Cells[3].ReadOnly = true; dgvStanice.Rows[dgvStanice.RowCount - 1].Cells[3].Style = crveno; if (dgvStanice.RowCount > 1) { dgvStanice.Rows[1].ReadOnly = false; dgvStanice.Rows[dgvStanice.RowCount - 2].Cells[3].ReadOnly = false; dgvStanice.Rows[dgvStanice.RowCount - 2].Cells[3].Style = obicno; } dgvStanice.Rows[dgvStanice.RowCount - 1].Cells[3].Value = dgvStanice.Rows[dgvStanice.RowCount - 1].Cells[2].Value; dgvStanice.Rows[0].Cells[2].Value = 0; dgvStanice.Rows[0].Cells[3].Value = 0; if (stanice.Count > 1) { btnUnosCijena.Enabled = true; btnRasporedi.Enabled = true; } }
public void dodajKupca(string imeKupca, long sifraLinije, long sifraVoznje, long sifraPocetneStanice, long sifraKrajnjeStanice, List <int> sjedista, string kod) { DAL.DAL d = DAL.DAL.Instanca; d.kreirajKonekciju(); DAL.Entiteti.Linija odabranaLinija = d.getDAO.getLinijaDAO().getById(sifraLinije); DAL.Entiteti.Voznja odabranaVoznja = d.getDAO.getVoznjaDAO().getById(sifraVoznje); DAL.Entiteti.Stanica prvaStanica = d.getDAO.getStaniceDAO().getById(sifraPocetneStanice); DAL.Entiteti.Stanica drugaStanica = d.getDAO.getStaniceDAO().getById(sifraKrajnjeStanice); double cijenaKarte = odabranaLinija.vratiCijenu(prvaStanica, drugaStanica); List <double> cijene = new List <double>(); for (int i = 0; i < sjedista.Count; i++) { cijene.Add(cijenaKarte); } DAL.Entiteti.KupacKarte kupac = new DAL.Entiteti.KupacKarte(imeKupca, prvaStanica, drugaStanica, odabranaVoznja, sjedista, cijene, DateTime.Now); long sifraKupca = d.getDAO.getKupacKarteDAO().create(kupac); d.getDAO.getSifraZaInternetKupovinuDAO().create(new DAL.Entiteti.SifraZaInternetKupovinu(sifraKupca, kod)); }
public void updateStanice(DAL.Entiteti.Stanica s) { sd.update(s); }
private static DesktopAplikacija.Entiteti.Put dijkstra(List <edge>[] v, DAL.Entiteti.Stanica pocetak, DAL.Entiteti.Stanica kraj, long velicina) { string s = string.Format(""); bool[] visited = new bool[velicina]; edge[] dd = new edge[velicina]; for (int i = 0; i < velicina; i++) { visited[i] = false; dd[i] = new edge(-1, 0, 0); } SortedSet <edge> ss = new SortedSet <edge>(); for (int i = 0; i < v[pocetak.SifraStanice].Count; i++) { ss.Add(new edge(v[pocetak.SifraStanice][i].c, v[pocetak.SifraStanice][i].v, pocetak.SifraStanice)); } dd[pocetak.SifraStanice].v = pocetak.SifraStanice; visited[pocetak.SifraStanice] = true; dd[pocetak.SifraStanice].c = 0; edge tmp; while (ss.Count > 0) { tmp = ss.Min; ss.Remove(ss.Min); if (visited[tmp.v]) { continue; } dd[tmp.v].c = tmp.c; visited[tmp.v] = true; dd[tmp.v].v = tmp.parent; for (int i = 0; i < v[tmp.v].Count; i++) { ss.Add(new edge(dd[tmp.v].c + v[tmp.v][i].c, v[tmp.v][i].v, tmp.v)); } } if (dd[kraj.SifraStanice].c == -1) { return(new Entiteti.Put(-1, "Ne postoji put izmedju trazenih stanica!")); } long tmp2 = kraj.SifraStanice; List <long> put = new List <long>(); put.Add(tmp2); while (tmp2 != pocetak.SifraStanice) { put.Add(dd[tmp2].v); tmp2 = dd[tmp2].v; } double tmpCijena; DAL.Entiteti.Stanica stanica1, stanica2; for (int i = put.Count - 1; i > 0; i--) { tmpCijena = 0; stanica1 = ks.getById(put[i]); stanica2 = ks.getById(put[i - 1]); foreach (edge ee in v[put[i]]) { if (ee.v == put[i - 1]) { tmpCijena = ee.c; break; } } s += stanica1.Naziv + ", " + stanica1.Mjesto + " - " + stanica2.Naziv + ", " + stanica2.Mjesto + ": " + tmpCijena.ToString() + "KM\n"; } return(new Entiteti.Put(dd[kraj.SifraStanice].c, s)); }
private DesktopAplikacija.Entiteti.Put dijkstra(List <edge>[] v, DAL.Entiteti.Stanica pocetak, DAL.Entiteti.Stanica kraj, long velicina) { string s = string.Format(""); bool[] visited = new bool[velicina]; edge[] dd = new edge[velicina]; for (int i = 0; i < velicina; i++) { visited[i] = false; dd[i] = new edge(); } SortedSet <edge> ss = new SortedSet <edge>(); for (int i = 0; i < v[pocetak.SifraStanice].Count; i++) { ss.Add(new edge(v[pocetak.SifraStanice][i].c, v[pocetak.SifraStanice][i].v, pocetak.SifraStanice)); } dd[pocetak.SifraStanice].v = pocetak.SifraStanice; visited[pocetak.SifraStanice] = true; dd[pocetak.SifraStanice].c = 0; edge tmp; while (ss.Count > 0) { tmp = ss.Min; ss.Remove(ss.Min); if (visited[tmp.v]) { continue; } dd[tmp.v].c = tmp.c; visited[tmp.v] = true; dd[tmp.v].v = tmp.parent; for (int i = 0; i < v[tmp.v].Count; i++) { ss.Add(new edge(dd[tmp.v].c + v[tmp.v][i].c, v[tmp.v][i].v, tmp.v)); } } long tmp2 = kraj.SifraStanice; List <long> put = new List <long>(); put.Add(tmp2); while (tmp2 != pocetak.SifraStanice) { put.Add(dd[tmp2].v); tmp2 = dd[tmp2].v; } DAL.Entiteti.Stanica stanica1, stanica2; for (int i = put.Count - 1; i > 0; i--) { stanica1 = ks.getById(put[i]); stanica2 = ks.getById(put[i - 1]); s += stanica1.Naziv + ", " + stanica1.Mjesto + " - " + stanica2.Naziv + ", " + stanica2.Mjesto + "\n"; } return(new Entiteti.Put(dd[kraj.SifraStanice].c, s)); }
public long kreirajStanicu(DAL.Entiteti.Stanica s) { s.SifraStanice = sd.create(s); stanice.Add(s); return(s.SifraStanice); }