Exemple #1
0
        public async Task <ActionResult <Sjediste> > PostSjediste(Sjediste sjediste)
        {
            _context.Sjediste.Add(sjediste);
            await _context.SaveChangesAsync();

            return(CreatedAtAction("GetSjediste", new { id = sjediste.SjedisteId }, sjediste));
        }
Exemple #2
0
        private void BtnOtkazi_Clicked(object sender, EventArgs e)
        {
            HttpResponseMessage response = sjedisteServis.GetResponse(Rezervacija.Sjediste.SjedisteID.ToString());

            if (response.IsSuccessStatusCode)
            {
                var      jsonObject = response.Content.ReadAsStringAsync();
                Sjediste sjediste   = JsonConvert.DeserializeObject <Sjediste>(jsonObject.Result);

                sjediste.isZauzeto = false;

                HttpResponseMessage oslobodiSjediste = sjedisteServis.PutResponse(sjediste.SjedisteID, sjediste);
                if (oslobodiSjediste.IsSuccessStatusCode)
                {
                    HttpResponseMessage izbrisiRezervaciju = rezervacijaServis.DeleteResponse(Rezervacija.RezervacijaID);
                    if (izbrisiRezervaciju.IsSuccessStatusCode)
                    {
                        DisplayAlert("Uspjeh", "Rezervacija uspješno otkazana", "OK");
                        Navigation.PushAsync(new PregledRezervacija());
                    }
                    else
                    {
                        DisplayAlert("Greška", "Rezervacija se ne može izbrisati", "OK");
                    }
                }
                else
                {
                    DisplayAlert("Greška", "Sjedište se ne može osloboditi", "OK");
                }
            }
            else
            {
                DisplayAlert("Greška", "Sjedište se ne može pronaći", "OK");
            }
        }
Exemple #3
0
        public async Task <IActionResult> PutSjediste(int id, Sjediste sjediste)
        {
            if (id != sjediste.SjedisteId)
            {
                return(BadRequest());
            }

            _context.Entry(sjediste).State = EntityState.Modified;

            try
            {
                await _context.SaveChangesAsync();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!SjedisteExists(id))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }

            return(NoContent());
        }
Exemple #4
0
        private void PointClick_Click(object sender, EventArgs e)
        {
            var n      = ((Label)sender).Name.Split('/');
            var red    = Int32.Parse(n[0]);
            var kolona = Int32.Parse(n[1]);
            var s      = new Sjediste {
                Red = red, Kolona = kolona
            };

            if (_zauzetaSjedista.Contains(s) == true)
            {
                return;
            }
            if (_rezervisanaSjedista.Contains(s) == true)
            {
                _rezervisanaSjedista.Remove(s);
                ((Label)sender).ForeColor = Color.FromArgb(113, 217, 154);
            }
            else
            {
                _rezervisanaSjedista.Add(s);
                ((Label)sender).ForeColor = Color.FromArgb(230, 92, 92);
            }
            UpdateTextBoxove();
        }
Exemple #5
0
        public async Task <IActionResult> Edit(int id, [Bind("SjedisteID,BrojSjedista,Slobodno,Cijena,RezervacijaID")] Sjediste sjediste)
        {
            if (id != sjediste.SjedisteID)
            {
                return(NotFound());
            }

            if (ModelState.IsValid)
            {
                try
                {
                    _context.Update(sjediste);
                    await _context.SaveChangesAsync();
                }
                catch (DbUpdateConcurrencyException)
                {
                    if (!SjedisteExists(sjediste.SjedisteID))
                    {
                        return(NotFound());
                    }
                    else
                    {
                        throw;
                    }
                }
                return(RedirectToAction(nameof(Index)));
            }
            ViewData["RezervacijaID"] = new SelectList(_context.Rezervacija, "RezervacijaID", "RezervacijaID", sjediste.RezervacijaID);
            return(View(sjediste));
        }
Exemple #6
0
        private void  SetujKarte(int ZeljeniBrKarata, Database.KupovinaTip kupovinaTip, Database.ProdajaTip prodaja, int eventId, int korinsikId)
        {
            for (int i = 0; i < ZeljeniBrKarata; i++)
            {
                Database.Karta karta = new Database.Karta
                {
                    KupovinaTip   = kupovinaTip,
                    Cijena        = prodaja.CijenaTip,
                    DatumKupovine = DateTime.Now,
                    TipKarteId    = prodaja.TipKarteId
                };

                CijenaTrenutneKupovine += karta.Cijena;
                _ctx.Karta.Add(karta);


                prodaja.BrojProdatihKarataTip++;

                if (prodaja.PostojeSjedista == true)
                {
                    Sjediste s = new Sjediste
                    {
                        Karta        = karta,
                        BrojSjedista = prodaja.BrojProdatihKarataTip
                    };
                    _ctx.Sjediste.Add(s);
                }

                _ctx.SaveChanges();
                GenerisiQRCode(karta, eventId, korinsikId);
            }
        }
Exemple #7
0
        public IActionResult Obrisi(int id)
        {
            MyContext db = new MyContext();
            Sjediste  p  = db.Sjediste.Find(id);

            db.Sjediste.Remove(p);
            db.SaveChanges();
            db.Dispose();
            return(RedirectToAction("Prikazi"));
        }
Exemple #8
0
        public IHttpActionResult GetSjediste(int id)
        {
            Sjediste sjediste = db.Sjediste.Find(id);

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

            return(Ok(sjediste));
        }
Exemple #9
0
        public IActionResult Snimi(SjedisteDodajVM model)
        {
            MyContext db = new MyContext();
            Sjediste  p  = model.Sjediste;

            p.SalaID = model.Sjediste.SalaID;
            db.Sjediste.Add(p);
            db.SaveChanges();
            db.Dispose();
            return(RedirectToAction("Prikazi"));
        }
Exemple #10
0
        public IHttpActionResult PostSjediste(Sjediste sjediste)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            db.Sjediste.Add(sjediste);
            db.SaveChanges();

            return(CreatedAtRoute("DefaultApi", new { id = sjediste.SjedisteID }, sjediste));
        }
Exemple #11
0
        public async Task <IActionResult> Create([Bind("SjedisteID,BrojSjedista,Slobodno,Cijena,RezervacijaID")] Sjediste sjediste)
        {
            if (ModelState.IsValid)
            {
                _context.Add(sjediste);
                await _context.SaveChangesAsync();

                return(RedirectToAction(nameof(Index)));
            }
            ViewData["RezervacijaID"] = new SelectList(_context.Rezervacija, "RezervacijaID", "RezervacijaID", sjediste.RezervacijaID);
            return(View(sjediste));
        }
Exemple #12
0
        public IHttpActionResult DeleteSjediste(int id)
        {
            Sjediste sjediste = db.Sjediste.Find(id);

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

            db.Sjediste.Remove(sjediste);
            db.SaveChanges();

            return(Ok(sjediste));
        }
Exemple #13
0
        public ActionResult ProdajaIzvedba(int id, String id2) //TODO:za id2 naziv rezervacije, takodje pri samoj rezervaciji popuniti naziv rezervacije

        {
            int idsale = db.Izvedbas.Where(x => x.ID_izvedbe == id).Select(x => x.Sala_ID_sale).Single();
            List <Rezervacija> rezMjesta = db.Rezervacijas.Where(x => x.naziv_rezervacije == id2).Where(x => x.Izvedba_ID_izvedbe == id).ToList();

            foreach (var item in rezMjesta)
            {
                Sjediste sjed = db.Sjedistes.Where(x => x.Red_Zona_Sala_ID_sale == idsale).Where(x => x.ID_sjedista == item.Sjediste_ID_sjedista).Single();
                db.Izvedbas.FirstOrDefault(x => x.ID_izvedbe == id).Sjedistes.Add(sjed);
                db.Rezervacijas.Remove(item);
                db.SaveChanges();
            }
            return(RedirectToAction("PregledIzvedba", new { id = id }));
        }
Exemple #14
0
        public ActionResult ObradaProdaje(int[] chk, string submitButton)
        {
            int     sesija = (int)Session["idizvedbe"];
            Izvedba iz     = db.Izvedbas.Find(sesija);

            for (int i = 0; i < chk.Length; i++)
            {
                int      id   = chk[i];
                Sjediste sjed = db.Sjedistes.Where(x => x.ID_sjedista == id).Where(x => x.Red_Zona_Sala_ID_sale == iz.Sala_ID_sale).Single();
                db.Izvedbas.FirstOrDefault(x => x.ID_izvedbe == sesija).Sjedistes.Add(sjed);
                db.SaveChanges();
            }

            return(RedirectToAction("PregledIzvedba", new { id = sesija }));
        }
Exemple #15
0
        public IActionResult Uredi(int id)
        {
            MyContext db = new MyContext();

            Sjediste        s     = db.Sjediste.Where(x => x.SjedisteID == id).Include(x => x.Sala).FirstOrDefault();
            SjedisteUrediVM model = new SjedisteUrediVM()
            {
                Id   = id,
                Sala = db.Sala.Select(x => new SelectListItem()
                {
                    Value = x.SalaID.ToString(),
                    Text  = x.Naziv
                }).ToList(),
                Kolona = s.Kolona,
                Red    = s.Red
            };

            db.Dispose();
            return(View(model));
        }
Exemple #16
0
        public IActionResult UrediSnimi(SjedisteUrediVM model)
        {
            MyContext db = new MyContext();
            Sjediste  s  = db.Sjediste.Where(x => x.SjedisteID == model.Id).Include(x => x.Sala).FirstOrDefault();

            s.SjedisteID = model.Id;
            s.Red        = model.Red;
            s.Kolona     = model.Kolona;
            List <SelectListItem> sale = db.Sala.Select(x => new SelectListItem()
            {
                Value = x.SalaID.ToString(),
                Text  = x.Naziv
            }).ToList();

            sale     = model.Sala;
            s.SalaID = model.salaId;
            db.SaveChanges();
            db.Dispose();
            return(RedirectToAction("Prikazi/" + model.Id));
        }
Exemple #17
0
        private void btn_Clicked(object sender, EventArgs e)
        {
            var btn = sender as Button;

            for (int i = 0; i < this.gridSjedala.ColumnDefinitions.Count; i++)
            {
                var btn2 = this.gridSjedala.Children[i] as Button;
                if (btn2.Text != btn.Text && btn2.IsEnabled == false)
                {
                    btn2.IsEnabled       = true;
                    btn2.BackgroundColor = Color.Green;
                }
            }

            btn.BackgroundColor         = Color.Gray;
            btn.IsEnabled               = false;
            this.nastavidalje.IsVisible = true;
            this.odabranoSjedalo.Text   = btn.Text;
            this.odabranoSjedaloObj     = btn.BindingContext as Sjediste;
            this.poruka.Text            = "Odabrali ste sjedalo sa oznakom: " + btn.Text + ". ";
        }
Exemple #18
0
        public IHttpActionResult PutSjediste(int id, Sjediste sjediste)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            if (id != sjediste.SjedisteID)
            {
                return(BadRequest());
            }

            Sjediste s = db.Sjediste.Find(id);

            s.isBussiness = sjediste.isBussiness;
            s.isProzor    = sjediste.isProzor;
            s.isZauzeto   = sjediste.isZauzeto;
            s.LetID       = sjediste.LetID;
            s.Oznaka      = sjediste.Oznaka;
            s.SjedisteID  = sjediste.SjedisteID;
            db.SaveChanges();

            return(StatusCode(HttpStatusCode.NoContent));
        }
Exemple #19
0
        public ActionResult CreateZona(Zona zona, String redova, String sjedista)
        {
            //TODO: mozda odraditi preko procedure
            int  idsale = (int)Session["sala"];
            Sala sala   = db.Salas.Find(idsale);
            int  maxr;
            int  maxs;
            int  kolona;
            int  r = Int32.Parse(redova);

            maxr = db.Reds.Where(x => x.Zona_Sala_ID_sale == idsale).Count();

            if (sjedista == null)
            {
                maxs = db.Sjedistes.Where(x => x.Red_Zona_Sala_ID_sale == idsale).Max(x => x.ID_sjedista);
            }
            else
            {
                maxs = Int32.Parse(sjedista);
            }
            if (maxr == 0)
            {
                kolona = maxs / r;
            }
            else
            {
                kolona = maxs / maxr;
            }
            zona.Sala_ID_sale = idsale;
            zona.ID_zone      = db.Zonas.Max(x => x.ID_zone) + 1;
            zona.Sala         = sala;
            db.Zonas.Add(zona);
            db.SaveChanges();
            for (int i = 0; i < r; i++)
            {
                Red red = new Red();
                red.ID_reda           = maxr + i + 1;
                red.Zona_ID_zone      = zona.ID_zone;
                red.Zona_Sala_ID_sale = idsale;
                db.Reds.Add(red);
                db.SaveChanges();
                for (int j = 0; j < kolona; j++)
                {
                    Sjediste sjed = new Sjediste();
                    if (maxr == 0)
                    {
                        sjed.ID_sjedista = i * kolona + j + 1;
                    }
                    else
                    {
                        sjed.ID_sjedista = maxs + i * kolona + j + 1;
                    }
                    sjed.Red_ID_reda           = red.ID_reda;
                    sjed.Red_Zona_ID_zone      = zona.ID_zone;
                    sjed.Red_Zona_Sala_ID_sale = idsale;
                    db.Sjedistes.Add(sjed);
                    db.SaveChanges();
                }
            }


            return(RedirectToAction("DetaljiSala", new { id = idsale }));
        }
Exemple #20
0
        public IHttpActionResult PutLet(int id, Let let)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            if (id != let.LetID)
            {
                return(BadRequest());
            }

            Let l       = db.Let.Find(id);
            int avionID = l.AvionID;

            l.LetID               = let.LetID;
            l.PolazisteID         = let.PolazisteID;
            l.OdredisteID         = let.OdredisteID;
            l.ZaposlenikID        = let.ZaposlenikID;
            l.BrojLeta            = let.BrojLeta;
            l.AvionID             = let.AvionID;
            l.isPosebnaPonuda     = let.isPosebnaPonuda;
            l.DatumVrijemePolaska = let.DatumVrijemePolaska;
            l.DatumVrijemeDolaska = let.DatumVrijemeDolaska;
            l.StatusLeta          = let.StatusLeta;
            l.CijenaBussDjeca     = let.CijenaBussDjeca;
            l.CijenaBussOdrasli   = let.CijenaBussOdrasli;
            l.CijenaEcoDjeca      = let.CijenaEcoDjeca;
            l.CijenaEcoOdrasli    = let.CijenaEcoOdrasli;

            db.SaveChanges();

            if (avionID != l.AvionID)
            {
                foreach (Sjediste sjediste in db.Sjediste.Where(x => x.LetID == l.LetID).ToList())
                {
                    db.Sjediste.Remove(sjediste);
                }
                db.SaveChanges();

                Avion avion = db.Avion.Find(let.AvionID);
                for (int i = 0; i < avion.BrojSjedistaBuss / 2; i++)
                {
                    Sjediste s1 = new Sjediste();
                    s1.isBussiness = true;
                    s1.isProzor    = true;
                    s1.isZauzeto   = false;
                    s1.LetID       = let.LetID;
                    s1.Oznaka      = "A" + (i + 1);

                    db.Sjediste.Add(s1);

                    Sjediste s2 = new Sjediste();
                    s2.isBussiness = true;
                    s2.isProzor    = true;
                    s2.isZauzeto   = false;
                    s2.LetID       = let.LetID;
                    s2.Oznaka      = "B" + (i + 1);

                    db.Sjediste.Add(s2);
                }


                for (int i = 0; i < avion.BrojSjedistaEco / 6; i++)
                {
                    Sjediste s1 = new Sjediste();
                    s1.isBussiness = false;
                    s1.isProzor    = false;
                    s1.isZauzeto   = false;
                    s1.LetID       = let.LetID;
                    s1.Oznaka      = "A" + (i + 1).ToString();
                    db.Sjediste.Add(s1);

                    Sjediste s2 = new Sjediste();
                    s2.isBussiness = false;
                    s2.isProzor    = false;
                    s2.isZauzeto   = false;
                    s2.LetID       = let.LetID;
                    s2.Oznaka      = "B" + (i + 1).ToString();
                    db.Sjediste.Add(s2);

                    Sjediste s3 = new Sjediste();
                    s3.isBussiness = false;
                    s3.isProzor    = true;
                    s3.isZauzeto   = false;
                    s3.LetID       = let.LetID;
                    s3.Oznaka      = "C" + (i + 1).ToString();
                    db.Sjediste.Add(s3);

                    Sjediste s4 = new Sjediste();
                    s4.isBussiness = false;
                    s4.isProzor    = false;
                    s4.isZauzeto   = false;
                    s4.LetID       = let.LetID;
                    s4.Oznaka      = "D" + (i + 1).ToString();
                    db.Sjediste.Add(s4);

                    Sjediste s5 = new Sjediste();
                    s5.isBussiness = false;
                    s5.isProzor    = false;
                    s5.isZauzeto   = false;
                    s5.LetID       = let.LetID;
                    s5.Oznaka      = "E" + (i + 1).ToString();
                    db.Sjediste.Add(s5);

                    Sjediste s6 = new Sjediste();
                    s6.isBussiness = false;
                    s6.isProzor    = true;
                    s6.isZauzeto   = false;
                    s6.LetID       = let.LetID;
                    s6.Oznaka      = "F" + (i + 1).ToString();
                    db.Sjediste.Add(s6);
                }
                db.SaveChanges();
            }



            return(StatusCode(HttpStatusCode.NoContent));
        }
Exemple #21
0
        public IHttpActionResult PostLet(Let let)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            db.Let.Add(let);
            db.SaveChanges();

            Avion avion = db.Avion.Find(let.AvionID);

            for (int i = 0; i < avion.BrojSjedistaBuss / 2; i++)
            {
                Sjediste s1 = new Sjediste();
                s1.isBussiness = true;
                s1.isProzor    = true;
                s1.isZauzeto   = false;
                s1.LetID       = let.LetID;
                s1.Oznaka      = "A" + (i + 1);

                db.Sjediste.Add(s1);

                Sjediste s2 = new Sjediste();
                s2.isBussiness = true;
                s2.isProzor    = true;
                s2.isZauzeto   = false;
                s2.LetID       = let.LetID;
                s2.Oznaka      = "B" + (i + 1);

                db.Sjediste.Add(s2);
            }


            for (int i = 0; i < avion.BrojSjedistaEco / 6; i++)
            {
                Sjediste s1 = new Sjediste();
                s1.isBussiness = false;
                s1.isProzor    = false;
                s1.isZauzeto   = false;
                s1.LetID       = let.LetID;
                s1.Oznaka      = "A" + (i + 1).ToString();
                db.Sjediste.Add(s1);

                Sjediste s2 = new Sjediste();
                s2.isBussiness = false;
                s2.isProzor    = false;
                s2.isZauzeto   = false;
                s2.LetID       = let.LetID;
                s2.Oznaka      = "B" + (i + 1).ToString();
                db.Sjediste.Add(s2);

                Sjediste s3 = new Sjediste();
                s3.isBussiness = false;
                s3.isProzor    = true;
                s3.isZauzeto   = false;
                s3.LetID       = let.LetID;
                s3.Oznaka      = "C" + (i + 1).ToString();
                db.Sjediste.Add(s3);

                Sjediste s4 = new Sjediste();
                s4.isBussiness = false;
                s4.isProzor    = false;
                s4.isZauzeto   = false;
                s4.LetID       = let.LetID;
                s4.Oznaka      = "D" + (i + 1).ToString();
                db.Sjediste.Add(s4);

                Sjediste s5 = new Sjediste();
                s5.isBussiness = false;
                s5.isProzor    = false;
                s5.isZauzeto   = false;
                s5.LetID       = let.LetID;
                s5.Oznaka      = "E" + (i + 1).ToString();
                db.Sjediste.Add(s5);

                Sjediste s6 = new Sjediste();
                s6.isBussiness = false;
                s6.isProzor    = true;
                s6.isZauzeto   = false;
                s6.LetID       = let.LetID;
                s6.Oznaka      = "F" + (i + 1).ToString();
                db.Sjediste.Add(s6);
            }
            db.SaveChanges();

            return(CreatedAtRoute("DefaultApi", new { id = let.LetID }, let));
        }
Exemple #22
0
 public UlaznicaPage(Rezervacija r, Sjediste odabranoSjedaloObj)
 {
     InitializeComponent();
     BindingContext = model = new UlaznicaViewModel(r, odabranoSjedaloObj);
 }
 public UlaznicaViewModel(Rezervacija rezervacija, Sjediste odabranoSjedalo)
 {
     InitCommand          = new Command(async() => await Init());
     this.rezervacija     = rezervacija;
     this.odabranoSjedalo = odabranoSjedalo;
 }
Exemple #24
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");
            }
        }
Exemple #25
0
        private void BtnProcesiraj_Clicked(object sender, EventArgs e)
        {
            Regex regex      = new Regex(@"^[a-žA-Ž]+$");
            Match match1     = regex.Match(txtIme.Text ?? "");
            Match match2     = regex.Match(txtPrezime.Text ?? "");
            int   BrojGodina = DateTime.Now.Date.Year - txtDatumRodenja.Date.Year;

            if (String.IsNullOrEmpty(txtIme.Text) || String.IsNullOrEmpty(txtPrezime.Text) || pickerSpol.SelectedIndex == 0 ||
                pickerTipPutnika.SelectedIndex == -1 || pickerTipDokumenta.SelectedIndex == 0 || String.IsNullOrEmpty(txtBrojDokumenta.Text))
            {
                errorLabel.Text = "Sva polja označena * su obavezna";
            }
            else if (!match1.Success)
            {
                errorLabel.Text = "Ime se sastoji samo od slova";
            }
            else if (txtIme.Text.Length <= 1)
            {
                errorLabel.Text = "Ime mora sadržavati više od 1 karaktera";
            }
            else if (txtIme.Text.Length >= 50)
            {
                errorLabel.Text = "Ime mora sadržavati manje 50 karaktera";
            }
            else if (!match2.Success)
            {
                errorLabel.Text = "Prezime se sastoji samo od slova";
            }
            else if (txtPrezime.Text.Length <= 1)
            {
                errorLabel.Text = "Prezime mora sadržavati više od 1 karaktera";
            }
            else if (txtPrezime.Text.Length >= 50)
            {
                errorLabel.Text = "Prezime mora sadržavati manje 50 karaktera";
            }
            else if (txtBrojDokumenta.Text.Length <= 1)
            {
                errorLabel.Text = "Broj dokumenta mora sadržavati više od 1 karaktera";
            }
            else if (txtBrojDokumenta.Text.Length >= 100)
            {
                errorLabel.Text = "Broj dokumenta mora sadržavati manje 100 karaktera";
            }
            else if (txtDatumRodenja.Date > DateTime.Now.Date)
            {
                errorLabel.Text = "Datum rođenja putnika ne može biti veći od trenutnog datuma";
            }
            else if (pickerTipPutnika.SelectedIndex == 1 && BrojGodina > 12)
            {
                errorLabel.Text = "Odabrani tip putnika je netačan. Putnik ima više od 12 godina";
            }
            else
            {
                Rezervacija nova = new Rezervacija();

                nova.KorisnikID   = Global.logiraniKorisnik.KorisnikID;
                nova.LetPolazakID = OdabraniLetPolazak.LetID;

                if (pickerSjediste.SelectedItem != null)
                {
                    nova.SjedistePolazakID = (pickerSjediste.SelectedItem as Sjedista_IndexVM.Rows).SjedisteID;
                }
                else
                {
                    pickerSjediste.SelectedIndex = 0;
                    nova.SjedistePolazakID       = (pickerSjediste.SelectedItem as Sjedista_IndexVM.Rows).SjedisteID;
                }

                nova.ImePutnika           = txtIme.Text;
                nova.PrezimePutnika       = txtPrezime.Text;
                nova.DatumRodjenjaPutnika = txtDatumRodenja.Date;
                nova.DatumRezervacije     = DateTime.Now;
                nova.Spol          = pickerSpol.SelectedItem.ToString();
                nova.TipPutnika    = pickerTipPutnika.SelectedItem.ToString();
                nova.TipDokumenta  = pickerTipDokumenta.SelectedItem.ToString();
                nova.BrojDokumenta = txtBrojDokumenta.Text;



                if (OdabranaKlasaPolazak == 0)
                {
                    if (pickerTipPutnika.SelectedIndex == 0)
                    {
                        nova.CijenaKarte = OdabraniLetPolazak.CijenaEcoOdrasli;
                    }
                    if (pickerTipPutnika.SelectedIndex == 1)
                    {
                        nova.CijenaKarte = OdabraniLetPolazak.CijenaEcoDjeca;
                    }
                }

                if (OdabranaKlasaPolazak == 1)
                {
                    if (pickerTipPutnika.SelectedIndex == 0)
                    {
                        nova.CijenaKarte = OdabraniLetPolazak.CijenaBussOdrasli ?? 0;
                    }
                    if (pickerTipPutnika.SelectedIndex == 1)
                    {
                        nova.CijenaKarte = OdabraniLetPolazak.CijenaBussDjeca ?? 0;
                    }
                }

                HttpResponseMessage response = rezervacijaServis.PostResponse(nova);
                if (response.IsSuccessStatusCode)
                {
                    HttpResponseMessage getSjediste = sjedisteServis.GetResponse(nova.SjedistePolazakID.ToString());
                    if (getSjediste.IsSuccessStatusCode)
                    {
                        var      jsonObject       = getSjediste.Content.ReadAsStringAsync();
                        Sjediste odabranoSjediste = JsonConvert.DeserializeObject <Sjediste>(jsonObject.Result);
                        odabranoSjediste.isZauzeto = true;
                        HttpResponseMessage izmjenaSjedista = sjedisteServis.PutResponse(nova.SjedistePolazakID, odabranoSjediste);

                        if (izmjenaSjedista.IsSuccessStatusCode)
                        {
                            DisplayAlert("Uspjeh", "Rezervacija uspješno spremljena", "OK");

                            if (OdabranaKlasaPovratak == null && OdabraniLetPovratak == null)
                            {
                                ClearForm();

                                var rezID        = response.Content.ReadAsStringAsync();
                                int rezervacijID = JsonConvert.DeserializeObject <int>(rezID.Result);
                                Navigation.PushAsync(new PregledRezervacijeDetalji(rezervacijID));
                            }
                        }
                        else
                        {
                            DisplayAlert("Greška", "Sjedište se ne može izmjeniti", "OK");
                        }
                    }
                    else
                    {
                        DisplayAlert("Greška", "Sjedište se ne može naći", "OK");
                    }
                }
                else
                {
                    DisplayAlert("Greška", "Rezervacija nije spremljena", "OK");
                }


                //Spremanje povratne karte
                if (OdabranaKlasaPovratak != null && OdabraniLetPovratak != null)
                {
                    Rezervacija povratna = new Rezervacija();

                    povratna.KorisnikID   = Global.logiraniKorisnik.KorisnikID;
                    povratna.LetPolazakID = OdabraniLetPovratak.LetID;

                    if (pickerSjedistePovratak.SelectedItem != null)
                    {
                        povratna.SjedistePolazakID = (pickerSjedistePovratak.SelectedItem as Sjedista_IndexVM.Rows).SjedisteID;
                    }
                    else
                    {
                        pickerSjedistePovratak.SelectedIndex = 0;
                        povratna.SjedistePolazakID           = (pickerSjedistePovratak.SelectedItem as Sjedista_IndexVM.Rows).SjedisteID;
                    }

                    povratna.ImePutnika           = txtIme.Text;
                    povratna.PrezimePutnika       = txtPrezime.Text;
                    povratna.DatumRodjenjaPutnika = txtDatumRodenja.Date;
                    povratna.DatumRezervacije     = DateTime.Now;
                    povratna.Spol          = pickerSpol.SelectedItem.ToString();
                    povratna.TipPutnika    = pickerTipPutnika.SelectedItem.ToString();
                    povratna.TipDokumenta  = pickerTipDokumenta.SelectedItem.ToString();
                    povratna.BrojDokumenta = txtBrojDokumenta.Text;

                    if (OdabranaKlasaPovratak == 0)
                    {
                        if (pickerTipPutnika.SelectedIndex == 0)
                        {
                            povratna.CijenaKarte = OdabraniLetPovratak.CijenaEcoOdrasli;
                        }
                        if (pickerTipPutnika.SelectedIndex == 1)
                        {
                            povratna.CijenaKarte = OdabraniLetPovratak.CijenaEcoDjeca;
                        }
                    }

                    if (OdabranaKlasaPovratak == 1)
                    {
                        if (pickerTipPutnika.SelectedIndex == 0)
                        {
                            povratna.CijenaKarte = OdabraniLetPovratak.CijenaBussOdrasli ?? 0;
                        }
                        if (pickerTipPutnika.SelectedIndex == 1)
                        {
                            povratna.CijenaKarte = OdabraniLetPovratak.CijenaBussDjeca ?? 0;
                        }
                    }

                    HttpResponseMessage responsePovratna = rezervacijaServis.PostResponse(povratna);
                    if (responsePovratna.IsSuccessStatusCode)
                    {
                        HttpResponseMessage getSjediste = sjedisteServis.GetResponse(povratna.SjedistePolazakID.ToString());
                        if (getSjediste.IsSuccessStatusCode)
                        {
                            var      jsonObject       = getSjediste.Content.ReadAsStringAsync();
                            Sjediste odabranoSjediste = JsonConvert.DeserializeObject <Sjediste>(jsonObject.Result);
                            odabranoSjediste.isZauzeto = true;
                            HttpResponseMessage izmjenaSjedista = sjedisteServis.PutResponse(povratna.SjedistePolazakID, odabranoSjediste);

                            if (izmjenaSjedista.IsSuccessStatusCode)
                            {
                                ClearForm();

                                var rezID        = responsePovratna.Content.ReadAsStringAsync();
                                int rezervacijID = JsonConvert.DeserializeObject <int>(rezID.Result);

                                Navigation.PushAsync(new PregledRezervacijeDetalji(rezervacijID));
                            }
                            else
                            {
                                DisplayAlert("Greška", "Sjedište se ne može izmjeniti", "OK");
                            }
                        }
                        else
                        {
                            DisplayAlert("Greška", "Sjedište se ne može naći", "OK");
                        }
                    }
                    else
                    {
                        DisplayAlert("Greška", "Rezervacija nije spremljena", "OK");
                    }
                }
            }
        }