예제 #1
0
        public IActionResult OnPost(string id)
        {
            if (!ModelState.IsValid)
            {
                return(Page());
            }
            else
            {
                MongoClient    client = new MongoClient("mongodb://localhost:27017");
                IMongoDatabase db     = client.GetDatabase("AMTravelDb");
                kolekcija = db.GetCollection <Soba>("soba");
                NoviId    = ObjectId.Parse(id);
                Soba PostojiSoba = kolekcija.Find(x => x.BrojSobe == NovaSoba.BrojSobe && x.Smestaj.Id == NoviId).FirstOrDefault();
                kolekcijaS     = db.GetCollection <Smestaj>("smestaj");
                PostojiSmestaj = kolekcijaS.Find(x => x.Id == NoviId).FirstOrDefault();

                if (PostojiSoba != null)
                {
                    PostojiVec = 1;
                    return(this.Page());
                }

                kolekcija.InsertOne(NovaSoba);

                PostojiSmestaj.Sobe.Add(new MongoDBRef("soba", NovaSoba.Id));
                NovaSoba.Smestaj = new MongoDBRef("smestaj", NoviId);


                kolekcija.ReplaceOne(x => x.Id == NovaSoba.Id, NovaSoba);
                kolekcijaS.ReplaceOne(x => x.Id == PostojiSmestaj.Id, PostojiSmestaj);
                return(RedirectToPage("./SobaSve", new{ id = id }));
            }
        }
예제 #2
0
        public bool AddTermini(DataWrapper.AddTermini term)
        {
            try
            {
                ISession s = DataLayer.GetSession();

                Termini t = new Termini();
                t.Od                 = term.Od;
                t.Do                 = term.Do;
                t.BrTrokrevetnih     = term.BrTrokrevetnih;
                t.BrCetvorokrevetnih = term.BrCetvorokrevetnih;
                t.BrDuplex           = term.BrDuplex;

                Smestaj sm = s.Query <Smestaj>()
                             .Where(v => v.Id == term.IdHotela).Select(p => p).FirstOrDefault();
                t.VezanZaSmestaj = sm;

                s.Save(t);

                s.Flush();
                s.Close();

                return(true);
            }
            catch (Exception ec)
            {
                return(false);
            }
        }
예제 #3
0
        public int RemoveSmestaj(int id)
        {
            try
            {
                ISession s = DataLayer.GetSession();

                Smestaj sm = s.Query <Smestaj>().Where(v => v.Id == id).Select(p => p).FirstOrDefault();

                s.Delete(sm);
                s.Flush();
                s.Close();

                ISession s2 = DataLayer.GetSession();

                s2.Query <Slike>()
                .Where(v => v.SmestajS == sm).Delete();

                s2.Flush();
                s2.Close();

                return(1);
            }
            catch (Exception exc)
            {
                return(-1);
            }
        }
        public async Task <IActionResult> Edit(Guid id, [Bind("BrojKreveta,Tip,Cena,AranzmanId,Id")] Smestaj smestaj)
        {
            if (id != smestaj.Id)
            {
                return(NotFound());
            }

            if (ModelState.IsValid)
            {
                try
                {
                    _context.Update(smestaj);
                    await _context.SaveChangesAsync();
                }
                catch (DbUpdateConcurrencyException)
                {
                    if (!SmestajExists(smestaj.Id))
                    {
                        return(NotFound());
                    }
                    else
                    {
                        throw;
                    }
                }
                return(RedirectToAction(nameof(SmestajUaranzmanu), new { aranzmanId = smestaj.AranzmanId }));
            }
            return(View(smestaj));
        }
예제 #5
0
        public SmestajView(Smestaj s)
        {
            this.Id            = s.Id;
            this.CenaPoKrevetu = s.CenaPoKrevetu;
            this.Opis          = s.Opis;
            this.Naziv         = s.Naziv;
            this.CenaPrevoza   = s.CenaPrevoza;
            //this.BrGlasova = s.BrGlasova;
            this.Ocena = s.Ocena;

            //this.SlikeSmestaja = new List<SlikeView>();
            //foreach (Slike slike in s.SlikeSmestaja)
            //{
            //    this.SlikeSmestaja.Add(new SlikeView(slike));
            //}
            this.SlikeSmestaja = new List <String>();
            foreach (Slike slike in s.SlikeSmestaja)
            {
                this.SlikeSmestaja.Add(slike.UrlSlike);
            }
            this.ImaTermine = new List <TerminiView>();
            foreach (Termini termini in s.ImaTermine)
            {
                this.ImaTermine.Add(new TerminiView(termini));
            }
        }
예제 #6
0
        public ActionResult DeleteConfirmed(int id)
        {
            Smestaj smestaj = db.Smestaji.Find(id);

            db.Smestaji.Remove(smestaj);
            db.SaveChanges();
            return(RedirectToAction("Index"));
        }
예제 #7
0
 public ActionResult Edit([Bind(Include = "Id,Naziv,Opis,Adresa,Ocena")] Smestaj smestaj)
 {
     if (ModelState.IsValid)
     {
         db.Entry(smestaj).State = EntityState.Modified;
         db.SaveChanges();
         return(RedirectToAction("Index"));
     }
     return(View(smestaj));
 }
예제 #8
0
        public IActionResult OnGet(string id)
        {
            MongoClient    client = new MongoClient("mongodb://localhost:27017");
            IMongoDatabase db     = client.GetDatabase("AMTravelDb");

            kolekcija       = db.GetCollection <Smestaj>("smestaj");
            NoviId          = ObjectId.Parse(id);
            TrenutniSmestaj = kolekcija.Find(x => x.Id == NoviId).FirstOrDefault();

            return(Page());
        }
예제 #9
0
        public ActionResult Create([Bind(Include = "Id,Naziv,Opis,Adresa,Ocena")] Smestaj smestaj)
        {
            if (ModelState.IsValid)
            {
                db.Smestaji.Add(smestaj);
                db.SaveChanges();
                return(RedirectToAction("Index"));
            }

            return(View(smestaj));
        }
예제 #10
0
        public List <TerminiView> VratiT_ZaS(int id)  //bilo je List<Termini>
        {
            ISession s = DataLayer.GetSession();

            Smestaj sme = s.Query <Smestaj>()
                          .Where(v => v.Id == id).Select(p => p).FirstOrDefault();

            List <TerminiView> termini = s.Query <Termini>()
                                         .Where(v => v.VezanZaSmestaj == sme).Select(p => new TerminiView(p)).ToList();

            return(termini);
        }
        public async Task <IActionResult> Create([Bind("BrojKreveta,Tip,Cena,AranzmanId,Id")] Smestaj smestaj)
        {
            if (ModelState.IsValid)
            {
                smestaj.Id = Guid.NewGuid();
                _context.Add(smestaj);
                await _context.SaveChangesAsync();

                return(RedirectToAction(nameof(SmestajUaranzmanu), new { aranzmanId = smestaj.AranzmanId }));
            }
            return(View(smestaj));
        }
예제 #12
0
        private void btnAdd_Click(object sender, EventArgs e)
        {
            var connectionString = "mongodb://localhost/?safe=true";
            var server           = MongoServer.Create(connectionString);
            var database         = server.GetDatabase("TouristGuide");

            var collection = database.GetCollection <Smestaj>("smestaji");

            var opstine = database.GetCollection <Opstina>("opstine");

            MongoCursor <Opstina> ops = opstine.FindAll();

            Opstina o = new Opstina();

            if (azuriranje == null)
            {
                foreach (Opstina op in ops)
                {
                    if (op.Naziv == cbxOpstina.SelectedItem.ToString())
                    {
                        o = op;
                    }
                }
            }


            Smestaj s = new Smestaj {
                Tip = txtTip.Text, Naziv = txtNaziv.Text, Adresa = txtAdresa.Text, BrojZvezdica = txtBroj.Text, Opstina = new MongoDBRef("opstine", o.Id)
            };


            if (azuriranje == null)
            {
                collection.Insert(s);

                o.Smestaji.Add(new MongoDBRef("smestaji", s.Id));
                opstine.Save(o);
            }
            else
            {
                var query = (from smestaji in collection.AsQueryable <Smestaj>()
                             where smestaji.Id == azuriranje.Id
                             select smestaji).FirstOrDefault();
                query.Tip          = txtTip.Text;
                query.Naziv        = txtNaziv.Text;
                query.Adresa       = txtAdresa.Text;
                query.BrojZvezdica = txtBroj.Text;
                collection.Save(query);
            }

            this.Close();
        }
예제 #13
0
 public DodajSmestajForm(Smestaj s)
 {
     InitializeComponent();
     if (s != null)
     {
         azuriranje  = s;
         btnAdd.Text = "Azuriraj";
     }
     else
     {
         azuriranje = null;
     }
 }
예제 #14
0
 private void button3_Click(object sender, EventArgs e)
 {
     if (dataGridView1.SelectedRows.Count != 0)
     {
         Smestaj          s   = (Smestaj)dataGridView1.CurrentRow.DataBoundItem;
         DodajSmestajForm dnf = new DodajSmestajForm(s);
         dnf.Show();
     }
     else
     {
         MessageBox.Show("Izaberite smestaj za izmenu!");
     }
 }
예제 #15
0
        // GET: Smestaj/Edit/5
        public ActionResult Edit(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            Smestaj smestaj = db.Smestaji.Find(id);

            if (smestaj == null)
            {
                return(HttpNotFound());
            }
            return(View(smestaj));
        }
예제 #16
0
        public void ZainteresovanZaSmestaj(Klijent k, int idSmestaja)
        {
            ISession s = DataLayer.GetSession();
            //stavimo datum ako klijent nije dobio trazeni smestaj

            Smestaj sm = s.Query <Smestaj>()
                         .Where(v => v.Id == idSmestaja)
                         .Select(p => p).FirstOrDefault();

            s.Query <Rezervacija>()
            .Where(v => v.KlijentR == k)
            .UpdateBuilder()
            .Set(c => c.Cekanje, c => "da")
            .Set(c => c.SmestajR, c => sm)
            .Update();
        }
예제 #17
0
        public void PosaljiPonuduKlijentima(Smestaj sm, String soba, String naziv)
        {
            ISession s = DataLayer.GetSession();
            //proveriti
            KlijentProvider klijentProv = new KlijentProvider();
            IList <Klijent> klijenti    = s.Query <Rezervacija>()
                                          .Where(p => (p.SmestajR.Id == sm.Id && p.Soba.Equals(soba) && p.Cekanje.Equals("da")))
                                          //   .OrderBy(p => p.Datum) //ne mora
                                          //    .ThenBy(p => p.KlijentR.PunoIme)
                                          .Select(p => p.KlijentR).ToList();

            foreach (Klijent k in klijenti)
            {
                klijentProv.Mail(k, "Ponovo je slobodan trazeni smestaj " + naziv + " za " + soba + " sobu ");
            }
        }
예제 #18
0
        public IActionResult OnPost(string id)
        {
            if (!ModelState.IsValid)
            {
                return(Page());
            }

            MongoClient    client = new MongoClient("mongodb://localhost:27017");
            IMongoDatabase db     = client.GetDatabase("AMTravelDb");

            kolekcija          = db.GetCollection <Smestaj>("smestaj");
            NoviId             = ObjectId.Parse(id);
            NoviSmestaj        = kolekcija.Find(x => x.Id == NoviId).FirstOrDefault();
            NoviSmestaj.Naziv  = TrenutniSmestaj.Naziv;
            NoviSmestaj.Adresa = TrenutniSmestaj.Adresa;
            NoviSmestaj.Opis   = TrenutniSmestaj.Opis;
            NoviSmestaj.Tip    = TrenutniSmestaj.Tip;
            kolekcija.ReplaceOne(x => x.Id == NoviSmestaj.Id, NoviSmestaj);
            return(RedirectToPage("./SmestajJedan", new { id = id }));
        }
예제 #19
0
        private void button2_Click(object sender, EventArgs e)
        {
            var connectionString = "mongodb://localhost/?safe=true";
            var server           = MongoServer.Create(connectionString);
            var database         = server.GetDatabase("TouristGuide");

            var collection = database.GetCollection <Smestaj>("smestaji");

            if (dataGridView1.SelectedRows.Count != 0)
            {
                Smestaj b     = (Smestaj)dataGridView1.CurrentRow.DataBoundItem;
                var     query = Query.EQ("_id", b.Id);
                collection.Remove(query);
                LoadGrid();
            }
            else
            {
                MessageBox.Show("Izaberite smestaj!");
            }
        }
예제 #20
0
        public double CenaSobe(Smestaj sm, String tip)
        {
            ISession s    = DataLayer.GetSession();
            int      cena = s.Query <Smestaj>()
                            .Where(v => v.Id == sm.Id).Select(p => p.CenaPoKrevetu).FirstOrDefault();

            if (tip.Equals("trokrevetna"))
            {
                return(cena * 1.3);
            }
            if (tip.Equals("cetvorokrevetna"))
            {
                return(cena * 1.4);
            }
            if (tip.Equals("duplex"))
            {
                return(cena * 1.5);
            }
            return(0);
        }
예제 #21
0
        public bool FilterDatum(int id, DateTime min, DateTime max)
        {
            ISession s = DataLayer.GetSession();

            Smestaj sme = s.Query <Smestaj>()
                          .Where(v => v.Id == id).Select(p => p).FirstOrDefault();

            List <Termini> termini = s.Query <Termini>()
                                     .Where(ter => ter.VezanZaSmestaj == sme)
                                     .Where(ter => ter.Od >= min)
                                     .Where(ter => ter.Od <= max)
                                     .Where(ter =>
                                            (ter.BrTrokrevetnih > 0 || ter.BrCetvorokrevetnih > 0 || ter.BrDuplex > 0))
                                     .ToList();

            if (termini.Count > 0)
            {
                return(true);
            }
            return(false);
        }
예제 #22
0
        public bool PutSmestaj(DataWrapper.PutSmestaj smestaj)
        {
            try
            {
                ISession s = DataLayer.GetSession();

                Smestaj sm = s.Query <Smestaj>().Where(v => v.Id == smestaj.Id).Select(p => p).FirstOrDefault();
                sm.Naziv         = smestaj.Naziv;
                sm.Opis          = smestaj.Opis;
                sm.CenaPoKrevetu = smestaj.CenaPoKrevetu;
                sm.CenaPrevoza   = smestaj.CenaPrevoza;

                s.Save(sm);

                s.Flush();
                s.Close();
                return(true);
            }
            catch (Exception ex)
            {
                return(false);
            }
        }
예제 #23
0
        public bool AddSmestaj(DataWrapper.AddHotel hotel)
        {
            try
            {
                ISession s = DataLayer.GetSession();

                Smestaj sm = new Smestaj();
                sm.Naziv         = hotel.Naziv;
                sm.Opis          = hotel.Opis;
                sm.CenaPoKrevetu = hotel.CenaPoKrevetu;
                sm.CenaPrevoza   = hotel.CenaPrevoza;

                Destinacija d = s.Query <Destinacija>()
                                .Where(v => v.Id == hotel.IdDestinacije).Select(p => p).FirstOrDefault();
                sm.PripadaDestinaciji = d;

                s.Save(sm);

                foreach (String str in hotel.SlikeSmestaja)
                {
                    Slike sl = new Slike();
                    sl.UrlSlike = str;
                    sl.SmestajS = sm;

                    s.Save(sl);
                }

                s.Flush();
                s.Close();

                return(true);
            }
            catch (Exception ec)
            {
                return(false);
            }
        }
예제 #24
0
        private void dataGridView1_CellDoubleClick(object sender, DataGridViewCellEventArgs e)
        {
            var connectionString = "mongodb://localhost/?safe=true";
            var server           = MongoServer.Create(connectionString);
            var database         = server.GetDatabase("TouristGuide");

            Smestaj f = (Smestaj)dataGridView1.CurrentRow.DataBoundItem;

            var opstineCollection = database.GetCollection <Opstina>("opstine");

            MongoCursor <Opstina> ops = opstineCollection.FindAll();

            String opstinica = "";

            foreach (Opstina o in ops)
            {
                if (o.Id == f.Opstina.Id)
                {
                    opstinica = o.Naziv;
                }
            }

            MessageBox.Show("Opstina na kojoj se nalazi prenociste: " + opstinica);
        }
 public void Put([FromBody] Smestaj smestaj)
 {
     smestajService.Update(smestaj);
 }
예제 #26
0
 public void Update(Smestaj smestaj)
 {
     sUnitOfwork.Smestaj.Update(s => s.Id, smestaj.Id, smestaj);
 }
예제 #27
0
        public bool Otkazi(Termini t, String soba, Klijent k)
        {
            ISession s = DataLayer.GetSession();

            Klijent klijent = s.Query <Klijent>()
                              .Where(v => v.Username.Equals(k.Username))
                              .Select(p => p).FirstOrDefault();

            Termini termin = GetTermini(t.Id);

            Smestaj sm = s.Query <Termini>()
                         .Where(v => v.Id == termin.Id)
                         .Select(p => p.VezanZaSmestaj).FirstOrDefault();

            Rezervacija rez = s.Query <Rezervacija>()
                              .Where(v => v.KlijentR.Id == klijent.Id && v.SmestajR == sm)
                              .Select(p => p).FirstOrDefault();

            if (sm == null || rez == null)
            {
                return(false); // greska
            }

            RezervacijaProvider rezervacijaProv = new RezervacijaProvider();
            KlijentProvider     klijentProv     = new KlijentProvider();

            klijentProv.Mail(klijent, "Uspesno otkazana rezervacija letevonja-" + sm.Naziv);
            if (soba.Equals("cetvorokrevetna"))
            {
                s.Query <Termini>()
                .Where(v => v.Id == t.Id)
                .UpdateBuilder()
                .Set(c => c.BrCetvorokrevetnih, c => c.BrCetvorokrevetnih + 1)
                .Update();
            }
            else if (soba.Equals("trokrevetna"))
            {
                s.Query <Termini>()
                .Where(v => v.Id == t.Id)
                .UpdateBuilder()
                .Set(c => c.BrTrokrevetnih, c => c.BrTrokrevetnih + 1)
                .Update();
            }
            else if (soba.Equals("duplex"))
            {
                s.Query <Termini>()
                .Where(v => v.Id == t.Id)
                .UpdateBuilder()
                .Set(c => c.BrDuplex, c => c.BrDuplex + 1)
                .Update();
            }
            else
            {
                return(false);
            }

            //ObrisiRezervaciju

            RezervacijaProvider r = new RezervacijaProvider();

            r.RemoveRezervacija(rez.Id);
            PosaljiPonuduKlijentima(sm, soba, sm.Naziv);
            return(true);
        }
예제 #28
0
        public bool Slobodan(Termini t, String soba, Klijent k)
        {
            ISession s = DataLayer.GetSession();

            Termini termin = GetTermini(t.Id);
            Smestaj sm     = s.Query <Termini>()
                             .Where(v => v.Id == termin.Id)
                             .Select(p => p.VezanZaSmestaj).FirstOrDefault();

            KlijentProvider klijentProv = new KlijentProvider();

            Klijent klijent = s.Query <Klijent>()
                              .Where(v => v.Username.Equals(k.Username))
                              .Select(p => p).FirstOrDefault();
            RezervacijaProvider rezervacijaProv = new RezervacijaProvider();

            Rezervacija rezervacija = new Rezervacija();

            rezervacija.KlijentR = klijent;
            rezervacija.SmestajR = sm;
            rezervacija.TerminiR = t;
            rezervacija.Soba     = soba;

            //postoji smestaj onda trebamo ispitati da li je termin slobodan
            if (soba.Equals("cetvorokrevetna"))
            {
                //update termine
                if (termin.BrCetvorokrevetnih > 0)
                {
                    s.Query <Termini>()
                    .Where(v => v.Id == t.Id)
                    .UpdateBuilder()
                    .Set(c => c.BrCetvorokrevetnih, c => c.BrCetvorokrevetnih - 1)
                    .Update();

                    if (t.Od.Month - DateTime.Now.Month > 2 && t.Od.Month - DateTime.Now.Month < 6)
                    {
                        klijentProv.Mail(klijent, "Rezervisan je traženi smeštaj-" + sm.Naziv + ". Cena smeštaja iznosi " + sm.CenaPoKrevetu * 1.4 * 120 + "din. Ukoliko se odlučite za naš prevoz, cena po osobi je " + sm.CenaPrevoza * 120 + "din");
                    }
                    else
                    {
                        klijentProv.Mail(klijent, "Rezervisan je traženi smeštaj-" + sm.Naziv + ". Početna cena smeštaja iznosi " + sm.CenaPoKrevetu * 1.4 * 120 + "din dok je cena sa popustom " + sm.CenaPoKrevetu * 1.4 * 120 * 0.8 + "din. Ukoliko se odlučite za nas prevoz, cena po osobi je " + sm.CenaPrevoza * 120 + "din");
                    }
                }
                else
                {
                    rezervacija.Cekanje = "da";
                    rezervacijaProv.AddRezervacija(rezervacija);
                    //smestimo klijenta u red
                    klijentProv.Mail(klijent, "Nažalost traženi smeštaj " + sm.Naziv + " je zauzet. Ukoliko se, oslobodi bićete obavešteni");
                    return(false);
                }
            }
            else if (soba.Equals("trokrevetna"))
            {
                if (termin.BrTrokrevetnih > 0)
                {
                    s.Query <Termini>()
                    .Where(v => v.Id == t.Id)
                    .UpdateBuilder()
                    .Set(c => c.BrTrokrevetnih, c => c.BrTrokrevetnih - 1)
                    .Update();
                    if (t.Od.Month - DateTime.Now.Month > 2 && t.Od.Month - DateTime.Now.Month < 6)
                    {
                        klijentProv.Mail(klijent, "Rezervisan je traženi smeštaj-" + sm.Naziv + ". Cena smeštaja iznosi " + sm.CenaPoKrevetu * 1.3 * 120 + "din. Ukoliko se odlučite za naš prevoz, cena po osobi je " + sm.CenaPrevoza * 120 + "din");
                    }
                    else
                    {
                        klijentProv.Mail(klijent, "Rezervisan je traženi smeštaj-" + sm.Naziv + ". Cena smeštaja iznosi " + sm.CenaPoKrevetu * 1.3 * 120 + "din dok je cena sa popustom " + sm.CenaPoKrevetu * 1.3 * 120 * 0.8 + "din. Ukoliko se odlučite za naš prevoz, cena po osobi je " + sm.CenaPrevoza * 120 + "din");
                    }
                }
                else
                {
                    rezervacija.Cekanje = "da";
                    klijentProv.Mail(klijent, "Nažalost traženi smeštaj " + sm.Naziv + " je zauzet. Ukoliko se oslobodi, bićete obavešteni");
                    rezervacijaProv.AddRezervacija(rezervacija);
                    return(false);
                }
            }
            else if (soba.Equals("duplex"))
            {
                if (termin.BrDuplex > 0)
                {
                    s.Query <Termini>()
                    .Where(v => v.Id == t.Id)
                    .UpdateBuilder()
                    .Set(c => c.BrDuplex, c => c.BrDuplex - 1)
                    .Update();

                    if (t.Od.Month - DateTime.Now.Month > 2 && t.Od.Month - DateTime.Now.Month < 6)
                    {
                        klijentProv.Mail(klijent, "Rezervisan je trazeni smestaj-" + sm.Naziv + ". Cena smestaja iznosi " + sm.CenaPoKrevetu * 1.5 * 120 + "din. Ukoliko se odlucite za nas prevoz cena po osobi je " + sm.CenaPrevoza * 120 + "din");
                    }
                    else
                    {
                        klijentProv.Mail(klijent, "Rezervisan je trazeni smestaj-" + sm.Naziv + ". Pocetna cena smestaja iznosi " + sm.CenaPoKrevetu * 1.5 * 120 + "din dok je cena sa popustom" + sm.CenaPoKrevetu * 1.5 * 120 * 0.8 + "din . Ukoliko se odlucite za nas prevoz cena po osobi je " + sm.CenaPrevoza * 120 + "din");
                    }
                }
                else
                {
                    rezervacija.Cekanje = "da";
                    klijentProv.Mail(klijent, "Nazalost trazeni smestaj " + sm.Naziv + " je zauzet. Ukoliko se oslobodi bicete obavesteni");
                    rezervacijaProv.AddRezervacija(rezervacija);
                    return(false);
                }
            }

            rezervacijaProv.AddRezervacija(rezervacija);

            return(true);
        }
예제 #29
0
 public DodajSmestajForm()
 {
     InitializeComponent();
     azuriranje = new Smestaj();
     azuriranje = null;
 }
 public void Post([FromBody] Smestaj smestaj)
 {
     smestajService.Insert(smestaj);
 }