示例#1
0
        private async void Button_Clicked_2(object sender, EventArgs e)
        {
            bool postoji = true;
            KartaSearchRequest kartasearch = null;


            if (karta != null)
            {
                kartasearch = new KartaSearchRequest();

                kartasearch.KorisnikID = int.Parse(karta.KorisnikId.ToString());
                kartasearch.TerminID   = int.Parse(karta.TerminId.ToString());
                kartasearch.Ponistena  = false;
            }

            var provjera = await _karte.Get <List <Karta> >(kartasearch);

            if (provjera.Count == 0)
            {
                postoji = false;
            }


            if (karta != null && postoji == false)
            {
                await _karte.Insert <KartaInsertRequest>(karta);
            }
        }
        public async Task prebaci()
        {
            var vozilo = await _vozilaService.GetById <Vozilo>(Linija.VoziloID);

            var search = new KartaSearchRequest()
            {
                PoAngzuje      = true,
                PoVozilu       = false,
                AngazujeID     = Linija.AngazujeID,
                DatumIzdavanja = Linija.DatumPretrage,
                PoDatumu       = true,
                PoVremenu      = true,
                VrijemePolaska = Linija.VrijemePolaska
            };

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

            if (listaKarata.Count == 0)
            {
                // DatumKarte = "NE POSTOJI KARTA ZA TRAZENI DATUM";
            }
            else
            {
                DatumKarte = listaKarata[0].DatumIzdavanja.ToString("MM/dd/yyyy");
                VrijemePo  = listaKarata[0].VrijemePolaska;
                VrijemeDo  = listaKarata[0].VrijemeDolaska;
            }


            Vozilo = vozilo.Model;
        }
        public async Task LoadDestinacije()
        {
            if (SelectedGrad != null)
            {
                DestinacijaSearchRequest destinacijasearch = new DestinacijaSearchRequest()
                {
                    Naziv  = SelectedGrad.Naziv,
                    GradId = SelectedGrad.Id
                };
                var lista = await _destinacije.Get <IEnumerable <Destinacija> >(destinacijasearch);

                ListaDestinacija.Clear();

                foreach (var x in lista)
                {
                    ProbniModels pm = new ProbniModels()
                    {
                        Id     = x.Id,
                        GradId = x.GradId,
                        Naziv  = x.Naziv,
                        Slika  = x.Slika,
                        CijenaProdatihKarataDestinacije = 0
                    };

                    TerminSearchRequest searchTermini = new TerminSearchRequest()
                    {
                        DestinacijaId = x.Id,
                        Aktivan       = true
                                        //Aktivan=true
                    };
                    var listterminidestinacije = await _termini.Get <IEnumerable <Termin> >(searchTermini);

                    foreach (var termin in listterminidestinacije)
                    {
                        KartaSearchRequest kartasearch = new KartaSearchRequest()
                        {
                            TerminID  = termin.Id,
                            Ponistena = false
                        };
                        var listakarata = await _karte.Get <List <Karta> >(kartasearch);

                        var brojkarata   = int.Parse(listakarata.Count.ToString());
                        var termincijena = Decimal.ToInt32(termin.Cijena);
                        var umnozak      = int.Parse(brojkarata.ToString()) * int.Parse(termincijena.ToString());
                        pm.CijenaProdatihKarataDestinacije += umnozak;
                        listakarata.Clear();
                    }

                    ListaDestinacija.Add(pm);
                }
            }
        }
示例#4
0
        public async Task <Karta> GetKarta(KartaSearchRequest search)
        {
            List <Karta> p = await _Karta.Get <List <eBus.Model.Karta> >(null);

            Karta karta = new Karta();

            foreach (var item in p)
            {
                if (item.BrojKarte == search.BrojKarte)
                {
                    karta = item;
                }
            }
            return(karta);
        }
        private async void btnPretraga_Click(object sender, EventArgs e)
        {
            if (this.ValidateChildren())
            {
                var search = new KartaSearchRequest()
                {
                    TerminID  = int.Parse(terminid.ToString()),
                    Ponistena = chckPonistena.Checked
                };

                var result = await _karte.Get <List <Models.Karta> >(search);

                dgvKarte.AutoGenerateColumns = false;
                dgvKarte.DataSource          = result;
            }
        }
示例#6
0
        public async Task ButtonInit(int id)
        {
            Putnici p = await GetPutnik();


            KartaInsertRequest kInsert = new KartaInsertRequest()
            {
                DatumIzdavanja        = DateTime.Now,
                RezervacijaSjedistaId = 1,
                BrojKarte             = getBrojKarte()
            };

            if (SelectedVrstaKarte == null)
            {
                kInsert.VrstaKarteId = 1;
            }
            else
            {
                kInsert.VrstaKarteId = SelectedVrstaKarte.VrstaKarteId;
            }

            await _Karta.Insert <Karta>(kInsert);

            KartaSearchRequest searchKarta = new KartaSearchRequest()
            {
                BrojKarte = kInsert.BrojKarte
            };

            Karta kGet = await GetKarta(searchKarta);

            RezervacijaInsertRequest rezInsert = new RezervacijaInsertRequest()
            {
                DatumKreiranja = DateTime.Now,
                DatumIsteka    = DateTime.Now.AddDays(7),
                Otkazana       = false,
                Qrcode         = getBrojKarte(),
                PutnikId       = p.PutnikId,
                KartaId        = kGet.KartaId,
                RedVoznjeId    = id
            };

            await _Rezervacija.Insert <RezervacijaKarte>(rezInsert);

            await Application.Current.MainPage.DisplayAlert(" ", "Uspješno ste rezervisali vašu kartu!", "OK");
        }
示例#7
0
        public async Task LoadKarte()
        {
            KorisniciSearchRequest request = new KorisniciSearchRequest()
            {
                KorisnickoIme = APIService.Username
            };
            var korisnik = await _korisniciservice.Get <List <Korisnik> >(request);

            int idkorisnik = korisnik.FirstOrDefault().Id;

            KartaSearchRequest search = new KartaSearchRequest()
            {
                KorisnikID = idkorisnik
            };
            var karte = await _karteservice.Get <IEnumerable <Karta> >(search);

            KarteList.Clear();

            foreach (var x in karte)
            {
                var termin = await _terminiservice.GetById <Termin>(x.TerminId);

                if (x.Ponistena == false && termin.AktivanTermin == true)
                {
                    var hotel = await _hoteliservice.GetById <Hotel>(termin.HotelId);

                    var destinacija = await _destinacijeservice.GetById <Destinacija>(termin.DestinacijaId);

                    MojeKarte k = new MojeKarte()
                    {
                        KartaId        = x.Id,
                        DatumPolaska   = termin.DatumPolaska,
                        DatumDolaska   = termin.DatumDolaska,
                        BrojZvjezdica  = hotel.BrojZvjezdica,
                        NazivHotela    = hotel.Naziv,
                        NazivPutovanja = destinacija.Naziv,
                        Cijena         = termin.Cijena
                    };


                    KarteList.Add(k);
                }
            }
        }
        private async Task LoadZaradaiKarte()
        {
            var _termin = await _termini.GetById <Models.Termin>(_id);

            var _destinacija = await _destinacije.GetById <Models.Destinacija>(_termin.DestinacijaId);

            KartaSearchRequest request = new KartaSearchRequest()
            {
                TerminID = _termin.Id
            };
            var karte = await _karte.Get <List <Models.Karta> >(request);

            int   brojkarata = int.Parse(karte.Count().ToString());
            float cijena     = float.Parse(brojkarata.ToString()) * float.Parse(_termin.Cijena.ToString());

            txtUkupnoKarata.Text  = brojkarata.ToString();
            txtZarada.Text        = cijena.ToString();
            txtDatumPolaska.Text  = _termin.DatumPolaska.ToString();
            txtDatumPovratka.Text = _termin.DatumDolaska.ToString();
            txtNaziv.Text         = _destinacija.Naziv;
        }
示例#9
0
        public async Task Init(int kupovinaId)
        {
            if (kupovinaId <= 0)
            {
                return;
            }

            KartaSearchRequest request = new KartaSearchRequest {
                KupovinaId = kupovinaId
            };

            var karte = await _karteService.Get <List <Karta> >(request);

            if (karte != null)
            {
                foreach (var k in karte)
                {
                    KarteList.Add(k);
                }
            }
        }
示例#10
0
        private async void btnPretrazi_Click(object sender, EventArgs e)
        {
            try
            {
                var search = new KartaSearchRequest()
                {
                    PoAngzuje      = false,
                    PoVozilu       = false,
                    DatumIzdavanja = dtpDatumIzdavanja.Value
                };

                var lista = await _karte.Get <List <Model.Karta> >(search);



                dgvKarte.DataSource = lista;
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, "Karta", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }
        public async Task <bool> AngazmanSjedista(int ang, int sjed, TimeSpan vrmP)
        {
            var search = new KartaSearchRequest()
            {
                PoAngzuje      = false,
                PoVremenu      = true,
                VrijemePolaska = vrmP,
                DatumIzdavanja = dtpDatumIzdavanja.Value.Date,
                PoVozilu       = false
            };

            var listaKarata = await _karta.Get <List <Model.Karta> >(search);

            foreach (var item in listaKarata)
            {
                if (item.AngazujeId == ang && item.SjedisteId == sjed)
                {
                    return(true);
                }
            }

            return(false);
        }
示例#12
0
        public async Task KupiKartu(Sjediste s, DateTime datum, TimeSpan vrijemePolaska)
        {
            var reze = new RezervacijaUpsertRequest();

            var searchP = new PutnikSearchRequest()
            {
                KorisnickoIme = APIService.KorisnickoIme
            };
            var listaPutnika = await __putniciService.Get <List <Putnik> >(searchP);

            Putnik putnik = null;

            foreach (var item in listaPutnika)
            {
                if (item.KorisnickoIme == APIService.KorisnickoIme)
                {
                    putnik = item;
                    break;
                }
            }

            var searchKa = new KartaSearchRequest()
            {
                PoAngzuje      = false,
                PoVozilu       = true,
                Red            = s.Red,
                Kolona         = s.Kolona,
                PoDatumu       = true,
                DatumIzdavanja = datum,
                IzSjedista     = false,
                PoVremenu      = true,
                VrijemePolaska = vrijemePolaska
            };

            var listaKarata = await __karteService.Get <List <Karta> >(searchKa);

            Karta karta = null;

            foreach (var item in listaKarata)
            {
                if (item.Sjediste.VoziloId == _voziloid && item.AngazujeId == Angazman)
                {
                    karta = item;
                    break;
                }
            }

            if (karta == null)
            {
                await Application.Current.MainPage.DisplayAlert(" ", "Trenutno karta nije kreirana", "OK");
            }
            else if (karta.DatumIzdavanja.Date < DateTime.Now.Date)
            {
                await Application.Current.MainPage.DisplayAlert(" ", "Niste u mogučnosti rezervisati", "OK");
            }
            else if (karta.DatumIzdavanja.Date == DateTime.Now.Date && karta.VrijemePolaska < DateTime.Now.TimeOfDay)
            {
                await Application.Current.MainPage.DisplayAlert(" ", "Vrijeme koje ste izabrali je isteklo", "OK");
            }
            else
            {
                var cijena = await _cijenaService.Get <List <Cijena> >(new CijenaSearchRequest()
                {
                    KompanijaID = s.Vozilo.KompanijaId,
                    LinijaID    = karta.Angazuje.LinijaId
                });

                reze.KartaId        = karta.Id;
                reze.PutnikId       = putnik.Id;
                reze.DatumKreiranja = DateTime.Now;
                reze.DatumIsteka    = karta.DatumIzdavanja.AddDays(1);
                reze.Otkazana       = false;


                if (DateTime.Now.Date.Year - putnik.DatumRodjenja.Value.Date.Year > 50 || DateTime.Now.Date.Year - putnik.DatumRodjenja.Value.Date.Year < 18)
                {
                    reze.CijenaSaPopustom = cijena[0].Popust == 0 ? cijena[0].Iznos :cijena[0].Iznos - (cijena[0].Iznos * decimal.Parse(cijena[0].Popust.Value.ToString()));
                }
                else
                {
                    reze.CijenaSaPopustom = cijena[0].Iznos;
                }



                await __rezervacijaService.Insert <Rezervacija>(reze);

                await Application.Current.MainPage.DisplayAlert(" ", "Uspješno ste kreirali rezervaciju", "OK");
            }
        }
示例#13
0
        public async Task <IActionResult> Rezervisi(int sjedisteId, DateTime datum, TimeSpan vrijeme)
        {
            Model.Karta    karta = null;
            Model.Sjediste s     = null;

            Model.Karta kreiranaNovaKarta = null;
            var         resSjediste       = await _sjedistaService.GetById(sjedisteId);

            if (resSjediste.IsSuccessStatusCode)
            {
                var resultS = resSjediste.Content.ReadAsStringAsync().Result;
                s = JsonConvert.DeserializeObject <Model.Sjediste>(resultS);

                var searchKarta = new KartaSearchRequest()
                {
                    PoAngzuje      = false,
                    PoVozilu       = true,
                    Red            = s.Red,
                    Kolona         = s.Kolona,
                    PoDatumu       = true,
                    DatumIzdavanja = datum,
                    IzSjedista     = true,
                    PoVremenu      = true,
                    VrijemePolaska = vrijeme
                };

                var resKarta = await _kartaService.Get(searchKarta);

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


                    if (karte.Count > 0)
                    {
                        karta = karte[0];
                    }

                    var reze = new RezervacijaUpsertRequest();



                    if (karta == null)
                    {
                        /* OVO SAM ZADNJE DODAO -----------------------------------------*/
                        var searchKarta2 = new KartaSearchRequest()
                        {
                            PoAngzuje      = false,
                            PoVozilu       = false,
                            DatumIzdavanja = datum,
                            VrijemePolaska = vrijeme
                        };

                        var karteRes = await _kartaService.Get(searchKarta2);

                        if (karteRes.IsSuccessStatusCode)
                        {
                            var lista = JsonConvert.DeserializeObject <List <Model.Karta> >(karteRes.Content.ReadAsStringAsync().Result);

                            if (lista.Count > 0)
                            {
                                if (datum.Date > DateTime.Now.Date)
                                {
                                    var upsert = new KartaUpsertRequest()
                                    {
                                        AngazujeId     = lista[0].AngazujeId,
                                        DatumIzdavanja = datum,
                                        VrijemePolaska = vrijeme,
                                        VrijemeDolaska = lista[0].VrijemeDolaska,
                                        BrojKarte      = GenerisiBrojKarte(9, true),
                                        SjedisteId     = sjedisteId
                                    };

                                    var nova = await _kartaService.Insert(upsert);



                                    if (nova.IsSuccessStatusCode)
                                    {
                                        kreiranaNovaKarta = JsonConvert.DeserializeObject <Model.Karta>(nova.Content.ReadAsStringAsync().Result);

                                        if (await NovaKartaIRezervacija(kreiranaNovaKarta, s))
                                        {
                                            TempData["poruka"] = "Uspješno ste rezervisali sjedište";
                                            return(RedirectToAction("PrikaziSjedista", new { id = s.VoziloId, datum = datum, vrijeme = vrijeme }));
                                        }
                                    }
                                    else
                                    {
                                        TempData["poruka"] = "Trenutno karta nije kreirana";
                                        return(RedirectToAction("PrikaziSjedista", new { id = s.VoziloId, datum = datum, vrijeme = vrijeme }));
                                    }
                                }
                                else
                                {
                                    TempData["poruka"] = "Niste u mogućnosti da rezervišete";
                                    return(RedirectToAction("PrikaziSjedista", new { id = s.VoziloId, datum = datum, vrijeme = vrijeme }));
                                }
                            }
                            else
                            {
                                TempData["poruka"] = "Trenutno karta nije kreirana";
                                return(RedirectToAction("PrikaziSjedista", new { id = s.VoziloId, datum = datum, vrijeme = vrijeme }));
                            }
                        }
                        else
                        {
                            TempData["poruka"] = "Trenutno karta nije kreirana";
                            return(RedirectToAction("PrikaziSjedista", new { id = s.VoziloId, datum = datum, vrijeme = vrijeme }));
                        }

                        /*-----------------------------------------------------------------------*/
                    }
                    else if (karta.DatumIzdavanja.Date < DateTime.Now.Date)
                    {
                        TempData["poruka"] = "Niste u mogučnosti rezervisati";


                        return(RedirectToAction("PrikaziSjedista", new { id = s.VoziloId, datum = datum, vrijeme = vrijeme }));
                    }
                    else if (karta.DatumIzdavanja.Date == DateTime.Now.Date && karta.VrijemePolaska < DateTime.Now.TimeOfDay)
                    {
                        TempData["poruka"] = "Vrijeme koje ste izabrali je isteklo";

                        return(RedirectToAction("PrikaziSjedista", new { id = s.VoziloId, datum = datum, vrijeme = vrijeme }));
                    }
                    else
                    {
                        if (await NovaKartaIRezervacija(karta, s))
                        {
                            TempData["poruka"] = "Uspješno ste rezervisali sjedište!";


                            return(RedirectToAction("PrikaziSjedista", new { id = s.VoziloId, datum = datum, vrijeme = vrijeme }));
                        }
                        else
                        {
                            TempData["poruka"] = "Niste u mogučnosti rezervisati";


                            return(RedirectToAction("PrikaziSjedista", new { id = s.VoziloId, datum = datum, vrijeme = vrijeme }));
                        }
                    }
                }
            }



            return(RedirectToAction("PrikaziSjedista", new { id = s.VoziloId, datum = datum, vrijeme = vrijeme }));
        }
示例#14
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));
        }
示例#15
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;
            }
        }
示例#16
0
        protected async override void OnAppearing()
        {
            model.Angazman = _angazujeID;
            base.OnAppearing();
            await model.Init(_id);



            var brSjedala = model.BrojSjedalaDodnih;

            this.gridSjedala.Children.Clear();

            //this.gridSjedala.VerticalOptions = LayoutOptions.CenterAndExpand;
            this.gridSjedala.HorizontalOptions = LayoutOptions.CenterAndExpand;
            this.gridSjedala.RowDefinitions    = new RowDefinitionCollection();
            this.gridSjedala.ColumnDefinitions = new ColumnDefinitionCollection();

            var brR = 0;

            this.gridSjedala.RowDefinitions.Add(new RowDefinition()
            {
                Height = 60
            });

            var brK = 0;

            bool dodajRed = false;

            for (int i = 0; i < brSjedala; i++)
            {
                if (i != 0 && brK == 0 && dodajRed)
                {
                    brR++;
                    this.gridSjedala.RowDefinitions.Add(new RowDefinition()
                    {
                        Height = 60
                    });
                    brK      = 0;
                    dodajRed = false;
                }

                if (brK < 4)
                {
                    dodajRed = true;
                    this.gridSjedala.ColumnDefinitions.Add(new ColumnDefinition()
                    {
                        Width = 50
                    });

                    Button l = new Button
                    {
                        MinimumWidthRequest = 40,
                        Text         = model.SjedistaList[i].Red.ToString() + " " + model.SjedistaList[i].Kolona.ToString(),
                        TextColor    = Color.White,
                        CornerRadius = 10,

                        HeightRequest = 50,
                        WidthRequest  = 67,
                        FontSize      = 10,

                        BindingContext = model.SjedistaList[i]
                    };

                    bool zauzeto = false;



                    var searchRez = new RezervacijaSearchRequest()
                    {
                        PoAngazmanu = true,
                        AngazmanId  = _angazujeID
                    };

                    //da samo prikaze rezervacije koje se odnose na ovaj angazman
                    var listaRezervacije = await _rezervacijeService.Get <List <Rezervacija> >(searchRez);



                    foreach (var item in listaRezervacije)
                    {
                        var searchKarta = new KartaSearchRequest() // ovdje trebam dodati i vrijeme polaska pretragu
                        {
                            PoAngzuje      = false,
                            PoVozilu       = true,
                            Red            = model.SjedistaList[i].Red,
                            Kolona         = model.SjedistaList[i].Kolona,
                            PoDatumu       = true,
                            DatumIzdavanja = _datum,
                            IzSjedista     = true,
                            PoVremenu      = true,
                            VrijemePolaska = _vrijeme
                        };

                        var listaKarata = await _karteService.Get <List <Karta> >(searchKarta);

                        var vozilId = await _voziloService.GetById <Vozilo>(item.Karta.Angazuje.VoziloId);

                        for (int j = 0; j < listaKarata.Count; j++)
                        {
                            if (item.KartaId == listaKarata[j].Id && !item.Otkazana.Value && vozilId.Id == _id && item.Karta.Angazuje.LinijaId == listaKarata[j].Angazuje.LinijaId)
                            {
                                zauzeto = true;
                                break;
                            }
                        }
                    }

                    if (zauzeto)
                    {
                        l.BackgroundColor = Color.Red;
                    }
                    else
                    {
                        l.BackgroundColor = Color.Green;
                        l.Pressed        += btn_Clicked;
                    }

                    this.gridSjedala.Children.Add(l, brK, brR);


                    if (brK == 3)
                    {
                        brK = 0;
                    }
                    else
                    {
                        brK++;
                    }
                }
                else
                {
                    brK = 0;
                }
            }

            model.Poruka           = false;
            model.VidljivaSjedista = true;
        }