//method

        public List <Stanica> VratiSveStanice()
        {
            List <Stanica> lista = new List <Stanica>();

            try
            {
                konekcija.Open();
                komanda.CommandText = "Select * from Stanica";
                SqlDataReader citac = komanda.ExecuteReader();

                while (citac.Read())
                {
                    Stanica nova = new Stanica();
                    nova.StanicaID    = citac.GetInt32(0);
                    nova.NazivStanice = citac.GetString(1);
                    lista.Add(nova);
                }
                citac.Close();
                return(lista);
            }
            catch (Exception)
            {
                throw;
            }
            finally
            {
                if (konekcija != null)
                {
                    konekcija.Close();
                }
            }
        }
Exemple #2
0
 internal Veza()
 {
     stanica1   = null;
     stanica2   = null;
     linija     = "";
     udaljenost = 0;
 }
        private void updateDgvCijene(int redniBroj, int polazak, int dolazak, Stanica stanica)
        {
            DataGridViewColumn dgvc = new DataGridViewColumn();

            dgvc.HeaderText   = stanica.Naziv;
            dgvc.CellTemplate = new DataGridViewTextBoxCell();

            dgvCijene.Columns.Insert(redniBroj - 1, dgvc);

            dgvCijene.Rows.Insert(redniBroj);
            dgvCijene.Rows[redniBroj].HeaderCell.Value = stanica.Naziv + ", " + stanica.Mjesto;

            DataGridViewCellStyle crveno = new DataGridViewCellStyle();

            crveno.BackColor = System.Drawing.Color.Red;


            for (int i = 0; i < redniBroj - 1; i++)
            {
                dgvCijene.Rows[redniBroj].Cells[i].Style    = crveno;
                dgvCijene.Rows[redniBroj].Cells[i].ReadOnly = true;
            }
            for (int i = redniBroj; i < dgvCijene.Rows.Count; i++)
            {
                dgvCijene.Rows[i].Cells[redniBroj - 1].Style    = crveno;
                dgvCijene.Rows[i].Cells[redniBroj - 1].ReadOnly = true;
            }
        }
Exemple #4
0
        /// <summary>
        /// Ak sa v okolн stanice nachбdza nejakб eЪte nezaradenб vэroba, tak sa zaradн
        /// </summary>
        /// <param name="paStavana">stavanб stanica</param>
        /// <param name="paRozmerRiadkov">rozmer</param>
        /// <param name="paRozmerStlpcov">rozmer</param>
        private void OverOkolieStaniceVyroba(Stanica paStavana, int paRozmerRiadkov, int paRozmerStlpcov)
        {

            int zacRiad = aPoloha.Riadok - 1;
            int zacStlp = aPoloha.Stlpec - 1;

            int konRiad = aPoloha.Riadok + paRozmerRiadkov;
            int konStlp = aPoloha.Stlpec + paRozmerStlpcov;

            Hra hra = Hra.DajInstanciu();
            Policko[,] matica = hra.DajHernuPlochu().DajMaticu();

            ZoskupenieStanic zosk = paStavana.Zoskupenie;

            for (int riadok = zacRiad; riadok <= konRiad; riadok++)
            {
                for (int stlpec = zacStlp; stlpec <= konStlp; stlpec++)
                {
                    Policko aktualne = matica[riadok, stlpec];
                    if (aktualne.Vyroba != null)
                    {
                        if (aktualne.Vyroba.Zoskupenie == null)
                        {
                            aktualne.Vyroba.Zoskupenie = zosk;
                            zosk.PridajVyrobu(aktualne.Vyroba);
                        }
                    }
                }
            }
        }
        private void button2_Click(object sender, EventArgs e)
        {
            //k = new Komunikacija();
            string         nazivLinije       = textBox1.Text;
            Stanica        pocetna           = (Stanica)comboBox1.SelectedItem;
            Stanica        krajnja           = (Stanica)comboBox2.SelectedItem;
            List <Stanica> medjustaniceParam = medjustanice.ToList();

            if (proveri(pocetna, krajnja, medjustaniceParam))
            {
                bool sacuvan = k.SacuvajLiniju(nazivLinije, pocetna, krajnja, medjustaniceParam);
                if (sacuvan)
                {
                    MessageBox.Show("Linija sacuvana");
                }
                else
                {
                    MessageBox.Show("Linija nije sacuvana");
                }
            }
            else
            {
                return;
            }
        }
Exemple #6
0
        public IHttpActionResult PutStanica(int id, Stanica stanica)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            if (id != stanica.Id)
            {
                return(BadRequest());
            }

            db.Entry(stanica).State = EntityState.Modified;

            try
            {
                db.SaveChanges();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!StanicaExists(id))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }

            return(StatusCode(HttpStatusCode.NoContent));
        }
        /// <summary>
        /// Vylo�enie 1 jednotky n�kladu
        /// </summary>
        /// <returns></returns>
        public bool Vyloz()
        {
            bool stav = false;
            Stanica navstivena = KonvertujMiestoNaStanicu(aCiele[aAktualnaPozicia]);
            if (navstivena == null) return false;

            navstivena.Zoskupenie.Uzamknute = false;

            if (aCestaDoDepa)
            {
                navstivena.PridajOdstavene(this);
                aCestaDoDepa = false;
                aTyp.Zastav();
                aTyp.Skryte = true;
                aJeVPohybe = false;
                Zastav();
                return false;
            }

            foreach (var item in aNaklad)
            {
                stav = navstivena.Zoskupenie.PrijmiJednotku(item);
                if (stav == true)
                {
                    item.VydajOdnemu(navstivena);
                    aNaklad.Remove(item);
                    break;
                }

            }
            Console.WriteLine("vylozenie" + stav);
            return stav;
        }
Exemple #8
0
        internal bool SacuvajLiniju(string nazivLinije, Stanica pocetna, Stanica krajnja, List <Stanica> medjustaniceParam)
        {
            Linija linija = new Linija()
            {
                NazivLinije    = nazivLinije,
                PocetnaStanica = pocetna,
                KrajnjaStanica = krajnja,
                Medjustanice   = medjustaniceParam
            };

            TransferKlasa transfer = new TransferKlasa();

            transfer.operacija       = Operacije.SacuvajLiniju;
            transfer.TransferObjekat = linija;
            formatter.Serialize(stream, transfer);

            transfer = (TransferKlasa)formatter.Deserialize(stream);
            if ((bool)transfer.Rezultat)
            {
                return(true);
            }
            else
            {
                return(false);
            }
        }
        internal List <Stanica> VratiStanice()
        {
            List <Stanica> stanice = new List <Stanica>();

            try
            {
                connection.Open();
                command             = connection.CreateCommand();
                command.CommandText = "SELECT * FROM STANICA";
                SqlDataReader reader = command.ExecuteReader();

                while (reader.Read())
                {
                    Stanica s = new Stanica()
                    {
                        StanicaId    = reader.GetInt32(0),
                        NazivStanice = reader.GetString(1)
                    };
                    stanice.Add(s);
                }
                reader.Close();
                return(stanice);
            }
            finally
            {
                if (connection != null)
                {
                    connection.Close();
                }
            }
        }
Exemple #10
0
        internal double Vreme(Vozilo[] a)
        {
            double  vreme      = 0;
            double  rastojanje = 0;
            string  ln         = "";
            Vozilo  v          = null;
            Stanica t          = pocetna;

            for (int i = 0; i < brVeza; i++)
            {
                if (ln != vz[i].Linija)
                {
                    ln = vz[i].Linija;
                    if (v != null)
                    {
                        vreme = vreme + rastojanje / v.Brzina;
                    }
                    for (int j = 0; j < a.Length; j++)
                    {
                        if (a[j].ImeLinije == vz[i].Linija)
                        {
                            v = a[j];
                        }
                    }
                    vreme += v.kolikoDoStanice(t);
                }
                rastojanje += vz[i].Udalj;
                t           = vz[i].DrugaStanicaVeze(t);
            }
            if (v != null)
            {
                vreme = vreme + rastojanje / v.Brzina;
            }
            return(vreme);
        }
Exemple #11
0
        /// <summary>
        /// Vyplatenie odmeny Zastavka prepravu
        /// </summary>
	    public void VydajOdnemu(Stanica paStanica)
	    {
            Spolocnost spol = Hra.DajInstanciu().Spolocnost;
	        aCiel = paStanica;
            int zaklPocetDni = aZdroj.Poloha.Vzdialenost(aCiel.Poloha)/5;
	        int skutPocetDni = Hra.DajInstanciu().Den - aZaciatocnyDen;
	        double koeficient = this.DajKoeficient(zaklPocetDni, skutPocetDni);
            spol.UpravFinancie((int)((double)koeficient * (int)Typ *zaklPocetDni));
	    }
Exemple #12
0
 internal Veza(Stanica poc, Stanica kraj, string imeln, double udalj)
 {
     stanica1   = poc;
     stanica2   = kraj;
     linija     = imeln;
     udaljenost = udalj;
     poc.DodajVezu(this);
     kraj.DodajVezu(this);
 }
Exemple #13
0
 internal Put(Stanica c, Veza[] s, int br)
 {
     brVeza = br;
     vz     = new Veza[br];
     cilj   = c;
     for (int i = 0; i < br; i++)
     {
         vz[i] = s[i];
     }
 }
Exemple #14
0
 public Put2(Put2 put)
 {
     duzinaputa = put.duzinaputa;
     st         = new Stanica[put.brst + 1000];
     brst       = put.brst;
     for (int i = 0; i < brst; i++)
     {
         st[i] = new Stanica(put.st[i]);
     }
 }
        private void button1_Click(object sender, EventArgs e)
        {
            Stanica s = (Stanica)comboBox3.SelectedItem;

            if (!medjustanice.Contains(s))
            {
                medjustanice.Add(s);
            }
            return;
        }
Exemple #16
0
        public IHttpActionResult GetStanica(int id)
        {
            Stanica stanica = db.Stanice.Find(id);

            if (stanica == null)
            {
                return(NotFound());
            }

            return(Ok(stanica));
        }
Exemple #17
0
 internal Stanica DrugaStanicaVeze(Stanica s)
 {
     if (s == stanica1)
     {
         return(stanica2);
     }
     else if (s == stanica2)
     {
         return(stanica1);
     }
     return(null);
 }
Exemple #18
0
        protected string IspisVeza()
        {
            string  s = cilj.Ime;
            Stanica t = cilj;

            for (int i = brVeza - 1; i >= 0; i--)
            {
                s = vz[i].DrugaStanicaVeze(t).Ime + "-" + vz[i].Udalj + "-" + s;
                t = vz[i].DrugaStanicaVeze(t);
            }
            return(s);
        }
Exemple #19
0
        public IHttpActionResult PostStanica(Stanica stanica)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            db.Stanice.Add(stanica);
            db.SaveChanges();

            return(CreatedAtRoute("DefaultApi", new { id = stanica.Id }, stanica));
        }
Exemple #20
0
        public IHttpActionResult AddStanica(StanicaBindingModel model)
        {
            List <Linija> linije        = new List <Linija>(db.Linije.GetAll());
            List <Linija> staniceLinije = new List <Linija>();

            foreach (int id in model.Linije)
            {
                foreach (Linija lin in linije)
                {
                    if (id == lin.Id)
                    {
                        staniceLinije.Add(lin);
                        break;
                    }
                }
            }

            Stanica stanica = new Stanica()
            {
                Naziv    = model.Naziv,
                Adresa   = model.Adresa,
                Position = model.Position,
                Linije   = staniceLinije
            };

            if (model.IdStanice != 0)
            {
                stanica.Id = model.IdStanice;
                try
                {
                    db.Stanice.Update(stanica);
                    db.Complete();
                }
                catch (Exception e)
                {
                    return(BadRequest(e.Message));
                }
            }
            else
            {
                try
                {
                    db.Stanice.Add(stanica);
                    db.Complete();
                }
                catch (Exception e)
                {
                    return(BadRequest(e.Message));
                }
            }
            return(Ok());
        }
Exemple #21
0
        public IHttpActionResult DeleteStanica(int id)
        {
            Stanica stanica = db.Stanice.Find(id);

            if (stanica == null)
            {
                return(NotFound());
            }

            db.Stanice.Remove(stanica);
            db.SaveChanges();

            return(Ok(stanica));
        }
Exemple #22
0
        /// <summary>
        /// Overenie okolia zoskupenia, rozhoduje иi pridaЭ stanicu uЮ ku existujъcemu zoskupenium
        /// alebo иi vytvori novй. 
        /// </summary>
        /// <param name="paStavana">stavanб stanica</param>
        /// <param name="paRozmerRiadkov">rozmer</param>
        /// <param name="paRozmerStlpcov">rozmer</param>
        /// <returns>vэsledok</returns>
        private bool OverOkolieStaniceZoskupenia(Stanica paStavana, int paRozmerRiadkov, int paRozmerStlpcov) {
            
            int zacRiad = aPoloha.Riadok - 1;
            int zacStlp = aPoloha.Stlpec - 1;
            
            int konRiad = aPoloha.Riadok + paRozmerRiadkov;
            int konStlp = aPoloha.Stlpec + paRozmerStlpcov;

            Hra hra = Hra.DajInstanciu();
            Policko[,] matica = hra.DajHernuPlochu().DajMaticu();

            ZoskupenieStanic zosk = null;
            int pocetNajdenachZosk = 0;

            for (int riadok = zacRiad; riadok <= konRiad; riadok++)
            {
                for (int stlpec = zacStlp; stlpec <= konStlp; stlpec++)
                {
                    Policko aktualne = matica[riadok, stlpec];
                    if(aktualne.Zastavane is Stanica)
                    {
                        if (zosk == null || !zosk.Equals((aktualne.Zastavane as Stanica).Zoskupenie))
                        {
                            zosk = (aktualne.Zastavane as Stanica).Zoskupenie;
                            pocetNajdenachZosk++;
                        }
                    }
                }
            }

            if (pocetNajdenachZosk == 0)
            {
                zosk = new ZoskupenieStanic();
                paStavana.Zoskupenie = zosk;
                zosk.PridajStanicu(paStavana);
                hra.Spolocnost.PridajStanicu(zosk);
                OverOkolieStaniceVyroba(paStavana, paRozmerRiadkov, paRozmerStlpcov);
                return true;
            }
            else if (pocetNajdenachZosk == 1)
            {
                paStavana.Zoskupenie = zosk;
                zosk.PridajStanicu(paStavana);
                hra.Spolocnost.PridajStanicu(zosk);
                OverOkolieStaniceVyroba(paStavana, paRozmerRiadkov, paRozmerStlpcov);
                return true;
            }

            return false;
        }
 /// <summary>
 /// Nalo�enie jednej jednotky n�kladu
 /// </summary>
 /// <returns></returns>
 public bool Naloz()
 {
     Stanica navstivena = KonvertujMiestoNaStanicu(aCiele[aAktualnaPozicia]);
     if (aNaklad.Count >= aTyp.Kapacita || navstivena == null) return false;
     PrepravJednotka pr = navstivena.Zoskupenie.VydajJednotku(aTyp.TypNakladu);
     if (pr != null)
     {
         Console.WriteLine("nalozenie" + pr.ToString());
         pr.CasNalozenia = Hra.DajInstanciu().Den;
         pr.Zdroj = navstivena;
         aNaklad.Add(pr);
         return true;
     }
     return false;
 }
        private void btnBrisiStanicu_Click(object sender, EventArgs e)
        {
            if (lvStanice.SelectedItems.Count == 0)
            {
                MessageBox.Show("Niste odabrali stanicu!");
                return;
            }

            if ((lvStanice.SelectedItems[0].Tag as Stanica).SifraStanice == linija.Stanice[0].SifraStanice)
            {
                MessageBox.Show("Ne možete obrisati početnu stanicu, kreirajte novu liniju!");
                return;
            }

            DialogResult dres = MessageBox.Show("Da li ste sigurni da želite izbrisati označenu stanicu iz linije (time brišete i sve cijene)?", "Brisati?", MessageBoxButtons.YesNo, MessageBoxIcon.Question);

            if (dres == DialogResult.Yes)
            {
                obrisanaStanica = true;
                Stanica oznacenaStanica = lvStanice.SelectedItems[0].Tag as Stanica;
                int     redniBroj       = linija.sadrziStanicu(oznacenaStanica);
                lvStanice.Items.Remove(lvStanice.SelectedItems[0]);

                dgvCijene.Rows.RemoveAt(redniBroj);
                dgvCijene.Columns.RemoveAt(redniBroj - 1);


                try
                {
                    linija.Cijene = validirajUneseneCijene();
                    linija.Stanice.RemoveAt(redniBroj);
                    linija.TrajanjeDoDolaska.RemoveAt(redniBroj);
                    linija.TrajanjeDoPolaska.RemoveAt(redniBroj);
                }
                catch (Exception ee)
                {
                    MessageBox.Show(ee.Message);
                    return;
                }

                kl.updateujLiniju(linija);

                MessageBox.Show("Stanica uspješno izbrisana!");
                popuniKomponente();
            }

            //MessageBox.Show((lvStanice.SelectedItems[0].Tag as Stanica).Naziv);
        }
 private bool proveri(Stanica pocetna, Stanica krajnja, List <Stanica> medjustanice)
 {
     if (pocetna.Equals(krajnja))
     {
         return(false);
     }
     if (medjustanice.Count() == 0)
     {
         return(false);
     }
     if (medjustanice.Contains(pocetna) || medjustanice.Contains(krajnja))
     {
         return(false);
     }
     return(true);
 }
Exemple #26
0
        /// <summary>
        /// Inicializácia premenných, naplnenie listu
        /// </summary>
        /// <param name="paStanica">Pre ktorú stanicu zobrazuje</param>
        public StanicaForm(Stanica paStanica)
        {
            InitializeComponent();
            FormBorderStyle = FormBorderStyle.FixedSingle;
            MaximizeBox     = false;
            MinimizeBox     = false;
            aStanica        = paStanica;

            aLabelTyp.Text = aStanica.ToString();

            foreach (var item in aStanica.MozneStroje)
            {
                aComboBoxMozne.Items.Add(item.ToString());
            }
            AktualizujOdstavaneDp();
            aTimer1.Start();
        }
        private bool proveri(Linija linija)
        {
            List <Stanica> medjustaniceIzBaze = new List <Stanica>();

            command             = new SqlCommand("", connection, transaction);
            command.CommandText = $"SELECT ls.StanicaID, s.NazivStanice FROM LinijaStanica ls JOIN Linija l on(ls.LinijaID = l.LinijaID) JOIN Stanica s on(s.StanicaID = ls.StanicaID) WHERE l.NazivLinije = '{linija.NazivLinije}'";
            SqlDataReader reader = command.ExecuteReader();

            while (reader.Read())
            {
                Stanica s = new Stanica()
                {
                    StanicaId    = reader.GetInt32(0),
                    NazivStanice = reader.GetString(1)
                };
                medjustaniceIzBaze.Add(s);
            }
            reader.Close();
            if (medjustaniceIzBaze.Count == 0)
            {
                return(true);
            }

            if (medjustaniceIzBaze.Count != linija.Medjustanice.Count)
            {
                return(true);
            }

            foreach (Stanica medju in linija.Medjustanice)
            {
                bool ima = false;
                foreach (Stanica medjuBaza in medjustaniceIzBaze)
                {
                    if (medju.StanicaId == medjuBaza.StanicaId)
                    {
                        ima = true;
                    }
                }
                if (!ima)
                {
                    return(true);
                }
            }
            return(false);
        }
Exemple #28
0
 internal double DuzinaDoCilja(double daljina, Stanica cilj, string linija, Veza td)
 {
     if (daljina <= 0 && this == cilj)
     {
         return(-daljina);
     }
     else
     {
         double duzina = 0;
         for (int i = 0; i < brveza; i++)
         {
             if (linija == veze[i].Linija && (veze[i] != td || this[linija] == 1))
             {
                 duzina += veze[i].DrugaStanicaVeze(this).DuzinaDoCilja(daljina - veze[i].Udalj, cilj, linija, veze[i]);
             }
         }
         return(duzina);
     }
 }
Exemple #29
0
 internal void Put(ref Veza[] vz, int n, ref Put[] pt, ref int brojac, Stanica cilj)
 {
     if (this == cilj)
     {
         pt[brojac] = new Put(cilj, vz, n);
         brojac++;
         return;
     }
     posecena = true;
     for (int i = 0; i < brveza; i++)
     {
         Stanica t = veze[i].DrugaStanicaVeze(this);
         if (!t.posecena)
         {
             vz[n] = veze[i];
             t.Put(ref vz, n + 1, ref pt, ref brojac, cilj);
         }
     }
     posecena = false;
 }
        public void AddListItemMethod1()
        {
            redniBroj = cbRedniBroj.SelectedIndex + 1;

            try
            {
                validirajUnosStanica();
            }
            catch (Exception ee)
            {
                MessageBox.Show(ee.Message);
                return;
            }
            odabranaStanica = moguceStanice[cbStanice.SelectedIndex];

            updateDgvCijene(redniBroj, trajanjeDoPolaska, trajanjeDoDolaska, odabranaStanica);
            dodanaStanica           = true;
            btnDodajStanicu.Enabled = false;
            btnBrisiStanicu.Enabled = false;
        }