예제 #1
0
        private async void btnPretrazi_Click(object sender, EventArgs e)
        {
            try
            {
                var search = new LinijaSearchRequest()
                {
                    OdredisteId = int.Parse(cmbOdrediste.SelectedValue.ToString()),
                    PolazisteId = int.Parse(cmbPolaziste.SelectedValue.ToString()),
                };
                var lista = await _linije.Get <List <Model.Linija> >(search);



                dgvLinije.DataSource = lista;
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, "Linija", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }
예제 #2
0
        public async Task <IActionResult> PretraziLinije(string polaziste, string odrediste, DateTime datum) //  LinijeVM podaci
        {
            var privremenaLinija = new List <LinijaPodaci>();

            var model = new LinijeVM();

            model.PrikaziLinije = new List <LinijaPodaci>();
            model.ListaGradova  = new List <Grad>();
            model.DatumPretrage = datum;  //podaci.DatumPretrage;

            var searchLinije = new LinijaSearchRequest()
            {
                PoNazivu       = true,
                NazivOdredista = odrediste, //podaci.Odrediste,
                NazivPolazista = polaziste  //podaci.Polaziste
            };

            var resLinije = await _linijeService.Get(searchLinije);

            if (resLinije.IsSuccessStatusCode)
            {
                var result = resLinije.Content.ReadAsStringAsync().Result;
                var linije = JsonConvert.DeserializeObject <List <Model.Linija> >(result);

                var searchKarta = new KartaSearchRequest()
                {
                    PoAngzuje      = false,
                    PoVozilu       = false,
                    PoVremenu      = false,
                    DatumIzdavanja = datum //podaci.DatumPretrage
                };

                var resKarta = await _kartaService.Get(searchKarta);

                if (resKarta.IsSuccessStatusCode)
                {
                    var resultK = resKarta.Content.ReadAsStringAsync().Result;
                    var karte   = JsonConvert.DeserializeObject <List <Model.Karta> >(resultK);

                    //var karte = await vratiKartePoDatumu(datum);

                    //List<Model.Karta> karte = await vratiKartePoDatumu(podaci.DatumPretrage);

                    Dictionary <TimeSpan, int> linijeZaPrikazat = new Dictionary <TimeSpan, int>();



                    foreach (var item in linije)
                    {
                        foreach (var karta in karte)
                        {
                            if (item.Id == karta.Angazuje.LinijaId)
                            {
                                if (!linijeZaPrikazat.ContainsKey(karta.VrijemePolaska))
                                {
                                    var searchCijena = new CijenaSearchRequest()
                                    {
                                        KompanijaID = karta.Sjediste.Vozilo.KompanijaId,
                                        LinijaID    = item.Id
                                    };

                                    var resCijena = await _cijenaService.Get(searchCijena);

                                    if (resCijena.IsSuccessStatusCode)
                                    {
                                        var resultC = resCijena.Content.ReadAsStringAsync().Result;
                                        var cijena  = JsonConvert.DeserializeObject <List <Model.Cijena> >(resultC);

                                        var linijaPodaci = new LinijaPodaci()
                                        {
                                            AngazujeID     = karta.AngazujeId,
                                            Cijena         = cijena[0].Iznos,
                                            DatumPretrage  = datum, //podaci.DatumPretrage,
                                            VoziloID       = karta.Sjediste.VoziloId.Value,
                                            Kompanija      = karta.Sjediste.Vozilo.Kompanija.Naziv,
                                            OdredisteNaziv = odrediste, //podaci.Odrediste,
                                            PolazisteNaziv = polaziste, //podaci.Polaziste,
                                            VrijemePolaska = karta.VrijemePolaska,
                                            kartaID        = karta.Id
                                        };

                                        model.PrikaziLinije.Add(linijaPodaci);
                                    }

                                    linijeZaPrikazat.Add(karta.VrijemePolaska, karta.AngazujeId);
                                }
                            }
                        }
                    }
                }
            }

            // return View( model);

            return(PartialView(model));
        }
예제 #3
0
        public async Task Init()
        {
            try
            {
                List <Model.Angazuje> listaAngazuje = null;



                // pretraga angazovanih po TRAZENOM datumu
                var serchAn = new AngazujeSearchRequest()
                {
                    Datum    = Datum.Date,
                    ZaLiniju = true
                };

                listaAngazuje = await _angazujeService.Get <List <Angazuje> >(serchAn);

                // pretraga linija po TRAZENOM odredistu i polazistu
                var search = new LinijaSearchRequest()
                {
                    NazivOdredista = Odrediste,
                    NazivPolazista = Polaziste,
                    PoNazivu       = true,
                    Datum          = Datum
                };

                var listaLinija = await _linijeService.Get <List <Linija> >(search);



                LinijaPodaciList.Clear();



                TestniPodaci.Clear();



                foreach (var item in listaAngazuje)
                {
                    var searchKarta = new KartaSearchRequest()
                    {
                        PoAngzuje      = true,
                        AngazujeID     = item.Id,
                        PoDatumu       = true,
                        PoVozilu       = false,
                        DatumIzdavanja = Datum.Date,
                        PoVremenu      = false // dodao
                    };

                    var listaKarat = await _kartaService.Get <List <Karta> >(searchKarta);

                    foreach (var item2 in listaLinija)
                    {
                        // poredi se linija iz angazuje sa linijom
                        if (item.LinijaId == item2.Id)
                        {
                            var gradP = await _gradService.GetById <Grad>(item.Linija.PolazisteId);

                            var gradO = await _gradService.GetById <Grad>(item.Linija.OdredisteId);

                            var kompanija = await _kompanijaService.GetById <Kompanija>(item.Vozilo.KompanijaId.Value);

                            var searchCijena = new CijenaSearchRequest()
                            {
                                LinijaID    = item.LinijaId,
                                KompanijaID = kompanija.Id
                            };

                            var cijena = await _cijenaService.Get <List <Cijena> >(searchCijena);

                            if (listaKarat.Count != 0)
                            {
                                // dodajemo podatke o liniji
                                TestniPodaci.Add(new LinijaPodaci()
                                {
                                    OdredisteNaziv = gradO.Naziv,
                                    PolazisteNaziv = gradP.Naziv,
                                    Cijena         = cijena.Count == 0 ? 0 : cijena[0].Iznos,
                                    Kompanija      = kompanija.Naziv,
                                    AngazujeID     = item.Id,
                                    VoziloID       = item.VoziloId,
                                    DatumPretrage  = Datum,
                                    VrijemePolaska = listaKarat[0].VrijemePolaska
                                });
                            }
                        }
                    }
                }

                // pretraga karata po TRAZENOM datumu
                var searchK = new KartaSearchRequest()
                {
                    PoAngzuje      = false,
                    PoDatumu       = true,
                    PoVozilu       = false,
                    DatumIzdavanja = Datum.Date,
                    PoVremenu      = false
                };

                var listaKarata = await _kartaService.Get <List <Karta> >(searchK);



                int brojacDodanihKarata = 0;

                Dictionary <TimeSpan, int> PregledDodanihLinija = new Dictionary <TimeSpan, int>();

                foreach (var item in listaKarata)
                {
                    foreach (var item2 in TestniPodaci.ToList())
                    {
                        // trazim linije koje nisu dodane u prvoj iteraciji
                        if (item.VrijemePolaska != item2.VrijemePolaska && item.AngazujeId == item2.AngazujeID /* && item.Sjediste.Red == 1 && item.Sjediste.Kolona == 1*/)
                        {
                            var gradP = await _gradService.GetById <Grad>(item.Angazuje.Linija.PolazisteId);

                            var gradO = await _gradService.GetById <Grad>(item.Angazuje.Linija.OdredisteId);

                            var kompanija = await _kompanijaService.GetById <Kompanija>(item.Angazuje.Vozilo.KompanijaId.Value);

                            var searchCijena = new CijenaSearchRequest()
                            {
                                LinijaID    = item.Angazuje.LinijaId,
                                KompanijaID = kompanija.Id
                            };

                            var cijena = await _cijenaService.Get <List <Cijena> >(searchCijena);


                            if (!PregledDodanihLinija.ContainsKey(item.VrijemePolaska))
                            {
                                PregledDodanihLinija.Add(item.VrijemePolaska, 1);
                                TestniPodaci.Add(new LinijaPodaci()
                                {
                                    OdredisteNaziv = gradO.Naziv,
                                    PolazisteNaziv = gradP.Naziv,
                                    Cijena         = cijena.Count == 0 ? 0 : cijena[0].Iznos,
                                    Kompanija      = kompanija.Naziv,
                                    AngazujeID     = item.AngazujeId,
                                    VoziloID       = item.Angazuje.VoziloId,
                                    DatumPretrage  = Datum,
                                    VrijemePolaska = item.VrijemePolaska
                                });
                            }
                        }
                    }
                }


                // prebacujem u listu koja se prikazuje
                foreach (var item in TestniPodaci.ToList())
                {
                    LinijaPodaciList.Add(item);
                }
            }
            catch (Exception)
            {
                throw;
            }
        }