コード例 #1
0
        private async void rezervisi(object parametar)
        {
            using (var db = new RRentingDbContext())
            {
                //validacija
                if (Convert.ToInt32(BrojOdraslih) == 0)
                {
                    var d = new MessageDialog("Unesite broj odraslih", "Neuspješna rezervacija");
                    await d.ShowAsync();
                }
                else if (Dolazak.Date == DateTime.Now && Odlazak.Date == DateTime.Now)
                {
                    var d = new MessageDialog("Molimo unesite ispravan datum dolaska i odlaska.", "Neuspješna rezervacija");
                    await d.ShowAsync();
                }

                //uspjela validacija
                else
                {
                    nacin_str = IzabraniNacin;
                    if (nacin_str == "Gotovinsko")
                    {
                        nacin = NacinPlacanja.Gotovinsko;
                    }
                    else
                    {
                        nacin = NacinPlacanja.Karticom;
                    }


                    Rezervacija nova         = new Rezervacija(Convert.ToInt32(BrojOdraslih), Convert.ToInt32(BrojDjece), Dolazak, Odlazak, Parking, Ljubimac, Krevet, nacin);
                    Soba        slobodnaSoba = DataSource.DataSourceRRenting.dajSlobodnuSobu(nova);

                    if (slobodnaSoba.CijenaSobe != 0)
                    {
                        int tiket = rnd.Next(1000);
                        using (var rdb = new RRentingDbContext())
                        {
                            if (rv)
                            {
                                //gost se dodaje u bazu tek kada ce se rezervacija izvrsiti

                                db.Gosti.Add(parent.RegistrovaniKorisnik);
                                db.SaveChanges();

                                gost = db.Gosti.Where(x => x.Email == parent.RegistrovaniKorisnik.Email && x.Sifra == parent.RegistrovaniKorisnik.Sifra && x.SigurnosniID == 0).FirstOrDefault();
                            }
                            else
                            {
                                //  -||-

                                db.Gosti.Add(parent2.RegistrovaniKorisnik);
                                db.SaveChanges();

                                gost = gost = db.Gosti.Where(x => x.Email == parent2.RegistrovaniKorisnik.Email && x.Sifra == parent2.RegistrovaniKorisnik.Sifra && x.SigurnosniID == 0).FirstOrDefault();
                            }

                            if (gost != null)
                            {
                                gost.brojSobe = slobodnaSoba.BrojSobe;
                                gost.dodijeliTiket(tiket);

                                //update changes
                                using (var rr = new RRentingDbContext())
                                {
                                    rr.Entry(gost).State = Microsoft.Data.Entity.EntityState.Modified;
                                    rr.SaveChanges();
                                }



                                nova.izracunajCijenu(Dolazak, Odlazak, slobodnaSoba);

                                slobodnaSoba.Status = StatusSobe.Rezervisana;

                                db.Rezervacije.Add(nova);
                                db.SaveChanges();

                                var dialog = new MessageDialog("Vaš broj tiketa: " + tiket.ToString(), "Rezervacija uspješna");
                                await dialog.ShowAsync();


                                if (rv == false)
                                {
                                    NavigationServis.Navigate(typeof(RecepcionerView), new RecepcionerViewModel(nova));
                                }
                                if (rv == true)
                                {
                                    NavigationServis.Navigate(typeof(Pocetna));
                                }
                            }
                        }
                    }



                    else
                    {
                        NavigationServis.Navigate(typeof(Login));
                        var d = new MessageDialog("U tom periodu nemamo soba koje odgovaraju Vašim zahtjevima.", "Žao nam je");
                        await d.ShowAsync();
                    }
                }
            }
        }