コード例 #1
0
        public Apartman DobaviApartman(Apartman apartmanNaziv)
        {
            Apartman ret = ApartmanGetter.GetApartmanByNaziv(apartmanNaziv.Naziv);

            apartmanZaIzmenu = apartmanNaziv.Naziv;
            return(ret);
        }
コード例 #2
0
        public ActionResult ObrisiApartman(string idApartmana)
        {
            Korisnik kor = (Korisnik)Session["korisnik"];

            if (kor == null)
            {
                kor = new Korisnik();
                Session["korisnik"] = kor;
            }

            foreach (Korisnik k in Database.domacini.Values)
            {
                if (k.KorisnickoIme == kor.KorisnickoIme && k.Uloga == Uloga.DOMACIN)
                {
                    Apartman apartman = new Apartman();
                    foreach (int id in Database.sviApartmani.Keys)
                    {
                        if (id == Int32.Parse(idApartmana))
                        {
                            Database.sviApartmani.TryGetValue(id, out apartman);
                            apartman.IsDeleted = true;
                        }
                    }
                }

                ViewBag.Message = "Apartman je uspesno obrisan.";
                return(View("RezultatBrisanja"));
            }
            ViewBag.Message = "Apartman nije obrisan, desila se neka greska!";
            return(View("RezultatBrisanja"));
        }
コード例 #3
0
        public ActionResult OtvoriIzmeniApartView(string idApartmana)
        {
            Korisnik kor = (Korisnik)Session["korisnik"];

            if (kor == null)
            {
                kor = new Korisnik();
                Session["korisnik"] = kor;
            }

            foreach (Korisnik k in Database.registrovaniKorisnici.Values)
            {
                if (k.KorisnickoIme == kor.KorisnickoIme && k.Uloga == Uloga.DOMACIN)
                {
                    Apartman apartman = new Apartman();
                    foreach (int id in Database.sviApartmani.Keys)
                    {
                        if (id == Int32.Parse(idApartmana))
                        {
                            Database.sviApartmani.TryGetValue(id, out apartman);
                        }
                    }

                    return(View("IzmeniApartman", apartman));
                }
            }
            ViewBag.Message = "Apartman nije promenjen, desila se greska!";
            return(View("IzmenaPodatakaRez"));
        }
コード例 #4
0
        public IHttpActionResult ChangeApartment(ApartmentBM apartment)
        {
            Apartman app = context.Apartmans.Where(x => x.ID == apartment.ID && x.Deleted == false).FirstOrDefault();

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

            if (CheckRole("Admin"))
            {
                if (CheckRole("Host"))
                {
                    return(StatusCode(HttpStatusCode.Unauthorized));
                }
                else
                {
                    apartment.Status = app.Status.ToString();
                }
            }

            SetApartment(app, apartment);

            return(Ok());
        }
コード例 #5
0
        public IHttpActionResult DeletePicture(int apartmentId, string picture)
        {
            if (CheckRole("Admin"))
            {
                if (CheckRole("Host"))
                {
                    return(StatusCode(HttpStatusCode.Unauthorized));
                }
            }
            Apartman app = context.Apartmans.Where(x => x.ID == apartmentId).FirstOrDefault();

            string[] picutres = app.Pictures.Split(';');
            app.Pictures = "";
            for (int i = 0; i < picutres.Length; i++)
            {
                if (picutres[i] == picture)
                {
                    picutres[i] = "";
                }
                if (picutres[i] != "") //kad brisemo sliku, mora staviti ; tamo gde je slika nestala
                {
                    picutres[i] += ';';
                }
                app.Pictures += picutres[i];
            }

            //context.Apartmans.Remove(app);
            context.SaveChanges();

            return(Ok());
        }
コード例 #6
0
        public int EditApartman(Apartman a)
        {
            try
            {
                ISession s = DataLayer.GetSession();

                Apartman ap = s.Query <Apartman>()
                              .Where(v => v.IdSmestaja == a.IdSmestaja).Select(p => p).FirstOrDefault();

                ap.ImeVlasnika     = a.ImeVlasnika;
                ap.PrezimeVlasnika = a.PrezimeVlasnika;
                ap.Telefon         = a.Telefon;
                ap.TipApartmana    = a.TipApartmana;

                s.Update(ap);

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

                return(1);
            }
            catch (Exception ec)
            {
                return(-1);
            }
        }
コード例 #7
0
        public async Task <HttpResponseMessage> UploadPictures(int apartmentID)
        {
            //if (CheckRole("Host"))
            //{
            //  return Request.CreateResponse(HttpStatusCode.Unauthorized);
            //}

            // Check if the request contains multipart/form-data.
            if (!Request.Content.IsMimeMultipartContent())
            {
                throw new HttpResponseException(HttpStatusCode.UnsupportedMediaType);
            }


            string root     = HttpContext.Current.Server.MapPath("~/Resource/Images");
            var    provider = new MultipartFormDataStreamProvider(root);

            try
            {
                // Read the form data.
                await Request.Content.ReadAsMultipartAsync(provider);

                // This illustrates how to get the file names.
                foreach (MultipartFileData file in provider.FileData)
                {
                    string filename = file.LocalFileName;
                    string realName = file.Headers.ContentDisposition.FileName.Split('\"')[1];
                    realName = realName.Split('.').Last();
                    realName = filename + "." + realName;
                    File.Move(filename, realName);

                    Apartman apartment = context.Apartmans.Where(x => x.ID == apartmentID).FirstOrDefault();
                    if (apartment.Pictures == null || apartment.Pictures == "")
                    {
                        apartment.Pictures = "";
                    }
                    else if (apartment.Pictures.Last() != ';')
                    {
                        apartment.Pictures += ';';
                    }


                    var nameParts    = realName.Split('\\').SkipWhile(p => !p.Equals("Resource"));
                    var relativePath = "";
                    foreach (var part in nameParts)
                    {
                        relativePath += part + "\\";
                    }
                    relativePath        = relativePath.Remove(relativePath.Length - 1); // brise zadnje '//' linije
                    apartment.Pictures += relativePath + ';';
                    context.SaveChanges();
                }
                return(Request.CreateResponse(HttpStatusCode.OK));
            }
            catch (System.Exception e)
            {
                return(Request.CreateErrorResponse(HttpStatusCode.InternalServerError, e));
            }
        }
コード例 #8
0
        public string ObrisiApartman(Apartman zaBrisanje)
        {
            Apartman apartman = ApartmanGetter.GetApartmanByNaziv(zaBrisanje.Naziv);
            int      brLinije = ApartmanGetter.GetBrojLinije(zaBrisanje.Naziv);

            ApartmanFileWritter.ObrisiApartman(brLinije);
            return("Apartman obrisan uspesno.");
        }
コード例 #9
0
        protected override void Seed(AirBnbContext context)
        {
            Adress adress1 = new Adress();

            adress1.ID           = 1;
            adress1.Streat       = "Bulevar Oslobodjenja";
            adress1.StreatNumber = 30;
            adress1.ZipCode      = 21000;
            adress1.Settlement   = "Novi Sad";
            context.Adresss.Add(adress1);
            context.SaveChanges();

            Amenitie amenitie1 = new Amenitie();

            amenitie1.Name = "Klima";
            context.Amenities.Add(amenitie1);
            context.SaveChanges();

            Location location1 = new Location();

            location1.ID        = 1;
            location1.Latitude  = 45.23;
            location1.Longitude = 25.23;
            location1.AdressID  = 1;

            User user1 = new User {
                ID = 1, Name = "Sasa", Surname = "Dragomirovic", Gender = Helper.Enums.Genders.Male, Password = "******", Role = Helper.Enums.Roles.Admin, UserName = "******"
            };
            User user2 = new User {
                ID = 2, Name = "Biba", Surname = "Bibic", Gender = Helper.Enums.Genders.Male, Password = "******", Role = Helper.Enums.Roles.Guest, UserName = "******"
            };
            User user3 = new User {
                ID = 3, Name = "Gruja", Surname = "Grujic", Gender = Helper.Enums.Genders.Male, Password = "******", Role = Helper.Enums.Roles.Host, UserName = "******"
            };

            context.Users.Add(user1);
            context.Users.Add(user2);
            context.Users.Add(user3);
            context.SaveChanges();

            Apartman apartman1 = new Apartman {
                ID = 1, GuestNumber = 3, HostID = 3, LocationID = 1, PricePerNight = 20, RoomNumber = 2
            };

            context.Apartmans.Add(apartman1);
            context.SaveChanges();

            Comment comment1 = new Comment {
                ID = 1, ApartmanID = 1, GuestID = 2, Rate = 9.5, Text = "Nice one"
            };

            context.Comments.Add(comment1);
            context.SaveChanges();

            //Reservation reservation1 = new Reservation { ID = 1, ApartmanID = 1, GuestID = 2, NumberOfNights = 10, SingUpDate = DateTime.Now, Stauts = Helper.Enums.ReservationStatus.Accepted, TotalPrice = 100 };
            //context.Reservations.Add(reservation1);
            //context.SaveChanges();
        }
コード例 #10
0
        public Apartman DobaviApartman(Apartman apartmanNaziv)
        {
            Apartman ret = ApartmanGetter.GetApartmanByNaziv(apartmanNaziv.Naziv);
            //apartmanZaIzmenu = apartmanNaziv.Naziv;
            List <Komentar> komentari = KomentariGetter.GetKomentareZaCitanje(apartmanNaziv.Naziv);

            ret.Komentari = komentari;
            return(ret);
        }
コード例 #11
0
        //public string PripadaOkruzenju { get; set; }

        public ApartmanView(Apartman a)
        {
            this.IdSmestaja      = a.IdSmestaja;
            this.ImeVlasnika     = a.ImeVlasnika;
            this.PrezimeVlasnika = a.PrezimeVlasnika;
            this.Telefon         = a.Telefon;
            this.TipApartmana    = a.TipApartmana;
            //this.PripadaOkruzenju = a.PripadaOkruzenju.TipOkruzenja;
        }
コード例 #12
0
        public string NapraviRezervaciju(RezervacijaModel rezervacija)
        {
            DateTime    rezDate = DateTime.ParseExact(rezervacija.PocetniDatum, "yyyy-MM-dd", CultureInfo.InvariantCulture);
            Rezervacija rez     = new Rezervacija(rezervacija);
            int         broj    = Rezervacija.GetBrojObjekta();

            rez.Id = broj + 1;
            Apartman apartman = ApartmanGetter.GetApartmanByNazivIStatus(rezervacija.RezervisaniApartman, "AKTIVAN");

            DateTime pomocni = rezDate.Date;



            for (int i = 0; i < rezervacija.BrojNocenja; i++)
            {
                if (!apartman.DatumiZaIzdavanje.Contains(rezDate.Date.AddDays(i)))
                {
                    return("Apartman nije u ponudi za odabrani period.");
                }
            }

            //prepis cene

            rez.UkupnaCena = 0;
            string putanjaDatumi = HostingEnvironment.MapPath("~/Files/Praznici.txt");
            string datumi        = File.ReadAllText(putanjaDatumi);

            string[]        prazniciPom = datumi.Split(',');
            List <DateTime> praznici    = new List <DateTime>();

            foreach (var datum in prazniciPom)
            {
                praznici.Add(DateTime.ParseExact(datum, "yyyy-MM-dd", CultureInfo.InvariantCulture));
            }

            for (int i = 0; i < rezervacija.BrojNocenja; i++)
            {
                pomocni = rezDate.AddDays(i);
                if (pomocni.DayOfWeek == DayOfWeek.Saturday || pomocni.DayOfWeek == DayOfWeek.Sunday || pomocni.DayOfWeek == DayOfWeek.Friday)
                {
                    rez.UkupnaCena += 0.9 * apartman.CenaPoNocenju;
                    continue;
                }
                else if (praznici.Contains(pomocni))
                {
                    rez.UkupnaCena += 1.05 * apartman.CenaPoNocenju;
                }
                else
                {
                    rez.UkupnaCena += apartman.CenaPoNocenju;
                }
            }

            RezervacijaFileWritter.UpisiRezervaciju(rez);
            return("zapisano");
        }
コード例 #13
0
        public ApartmanView GetApartmanView(int id)
        {
            ISession s = DataLayer.GetSession();

            Apartman ap = s.Query <Apartman>()
                          .Where(v => v.IdSmestaja == id).Select(p => p).FirstOrDefault();

            if (ap == null)
            {
                return(new ApartmanView());
            }

            return(new ApartmanView(ap));
        }
コード例 #14
0
        public IHttpActionResult GetApartmentAmenitieNames(int apartmentID)
        {
            Apartman      apartman = context.Apartmans.Where(x => x.ID == apartmentID && x.Deleted == false).FirstOrDefault();
            List <string> amm      = new List <string>();

            foreach (Amenitie item in apartman.Amenities)
            {
                if (item.Deleted == false)
                {
                    amm.Add(item.Name);
                }
            }

            return(Ok(amm));
        }
コード例 #15
0
        private bool SetApartment(Apartman apartman, ApartmentBM apartmentBM) //change apartmant
        {
            apartman.Type   = (apartmentBM.Type == ApartmanType.FullApartman.ToString()) ? ApartmanType.FullApartman : ApartmanType.Room;
            apartman.Status = (apartmentBM.Status == ApartmanStatus.Active.ToString()) ? ApartmanStatus.Active : ApartmanStatus.NotActive;

            apartman.SingUpTime  = apartmentBM.SingUpTime;
            apartman.SingOutTime = apartmentBM.SingOutTime;
            apartman.RoomNumber  = apartmentBM.RoomNumber;
            // apartman.RentDates = apartmentBM.RentDates;
            apartman.PricePerNight = apartmentBM.PricePerNight;
            ////pic
            //apartman.Pictures = "";
            //foreach (string pic in apartmentBM.Pictures)
            //{
            //  apartman.Pictures = pic + ';';
            //}


            apartman.GuestNumber = apartmentBM.GuestNumber;
            context.SaveChanges();

            //location info:
            Location locationInfo = context.Locations.Where(x => x.ID == apartman.LocationID).FirstOrDefault();

            locationInfo.Latitude  = apartmentBM.Latitude;
            locationInfo.Longitude = apartmentBM.Longitude;
            context.SaveChanges();

            //Adress
            locationInfo.Adress.Streat       = apartmentBM.Streat;
            locationInfo.Adress.StreatNumber = apartmentBM.StreatNumber;
            locationInfo.Adress.ZipCode      = apartmentBM.ZipCode;
            locationInfo.Adress.Settlement   = apartmentBM.Settlement;
            context.SaveChanges();

            //Amenities
            apartman.Amenities.Clear(); //brise sve postojece
            foreach (string amm in apartmentBM.Amenities)
            {
                Amenitie amenitie = context.Amenities.Where(x => x.Name == amm).FirstOrDefault();

                apartman.Amenities.Add(amenitie);
            }
            context.SaveChanges();


            return(true);
        }
コード例 #16
0
        public IHttpActionResult DeleteApartment(int apartmentId)
        {
            if (CheckRole("Admin"))
            {
                if (CheckRole("Host"))
                {
                    return(StatusCode(HttpStatusCode.Unauthorized));
                }
            }
            Apartman app = context.Apartmans.Where(x => x.ID == apartmentId).FirstOrDefault();

            app.Deleted = true;
            //context.Apartmans.Remove(app);
            context.SaveChanges();

            return(Ok());
        }
コード例 #17
0
ファイル: Form1.cs プロジェクト: niknedgit/sistemi-bp
        private void Ucitajapartman_Click(object sender, EventArgs e)
        {
            try
            {
                ISession s = DataLayer.GetSession();

                Apartman a = s.Load <Apartman>(33);

                MessageBox.Show("Ucitan je apartman vlasnika " + a.ImeVlasnika + " " + a.PrezimeVlasnika + ", broj telefona " + a.Telefon);

                s.Close();
            }
            catch (Exception ec)
            {
                MessageBox.Show(ec.Message);
            }
        }
コード例 #18
0
        public int AddApartman(Apartman a)
        {
            try
            {
                ISession s = DataLayer.GetSession();

                s.Save(a);

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

                return(1);
            }
            catch (Exception ec)
            {
                return(-1);
            }
        }
コード例 #19
0
        public ActionResult OdobriApartman(string apartman)
        {
            Korisnik kor = (Korisnik)Session["korisnik"];

            if (kor == null)
            {
                kor = new Korisnik();
                Session["korisnik"] = kor;
            }

            if (apartman == null)
            {
                ViewBag.ErrorMessage = "Ne postoji nijedan apartman!";
                return(View("Greska"));
            }

            Apartman apart = new Apartman();

            foreach (Korisnik k in Database.registrovaniKorisnici.Values)
            {
                if (k.KorisnickoIme == kor.KorisnickoIme && k.Uloga == Uloga.ADMINISTRATOR)
                {
                    apart = Database.sviApartmani[Int32.Parse(apartman)];

                    Database.sviApartmani.Remove(apart.Id);
                    Database.domacini[apart.Domacin.KorisnickoIme].ApartmaniZaIzdavanje.Remove(apart);

                    apart.Status = StatusApartmana.AKTIVAN;

                    Database.sviApartmani.Add(apart.Id, apart);

                    Database.domacini[apart.Domacin.KorisnickoIme].ApartmaniZaIzdavanje.Add(apart);

                    Database.UpisiSveApartmane();

                    ViewBag.Message = "Apartman je odobren.";
                    return(View("OdobriApartmanRez"));
                }
            }

            ViewBag.Message = "Apartman nije odobren!";
            return(View("OdobriApartmanRez"));
        }
コード例 #20
0
        public string DodajApartman(JObject a)
        {
            ApartmanModel apartmanM = null;

            apartmanM = a.ToObject <ApartmanModel>();

            Apartman apartman = new Apartman(apartmanM);

            if (ApartmanGetter.GetApartmanByNaziv(apartman.Naziv) != null)
            {
                return("Apartman sa tim nazivom vec postoji.");
            }
            else
            {
                ApartmanFileWritter.ZapisiApartman(apartman);

                return("Apartman uspesno dodat.");
            }
        }
コード例 #21
0
        public int RemoveApartman(int id)
        {
            try
            {
                ISession s = DataLayer.GetSession();

                Apartman a = s.Load <Apartman>(id);

                s.Delete(a);

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

                return(1);
            }
            catch (Exception exc)
            {
                return(-1);
            }
        }
コード例 #22
0
        public string IzmeniApartman(Apartman zaIzmenu)
        {
            Apartman apartman = ApartmanGetter.GetApartmanByNaziv(apartmanZaIzmenu);

            apartman.BrGostiju        = zaIzmenu.BrGostiju;
            apartman.Tip              = zaIzmenu.Tip;
            apartman.BrSoba           = zaIzmenu.BrSoba;
            apartman.CenaPoNocenju    = zaIzmenu.CenaPoNocenju;
            apartman.Naziv            = zaIzmenu.Naziv;
            apartman.Status           = zaIzmenu.Status;
            apartman.Prijava          = zaIzmenu.Prijava;
            apartman.Odjava           = zaIzmenu.Odjava;
            apartman.SadrzajApartmana = zaIzmenu.SadrzajApartmana;
            int brLinije = ApartmanGetter.GetBrojLinije(apartmanZaIzmenu);

            ApartmanFileWritter.ZapisiIzmenjen(brLinije, apartman);
            RezervacijaFileWritter.IzmeniNazivApartmana(apartmanZaIzmenu, apartman.Naziv);
            KomentarFileWritter.IzmeniNazivApartmana(apartmanZaIzmenu, apartman.Naziv);
            return("uspesno");
        }
コード例 #23
0
        // Get: /MojProfil/Detalji?id=0
        public ActionResult Detalji()
        {
            Korisnik korisnik = (Korisnik)Session["Korisnik"];

            if (korisnik == null)
            {
                korisnik            = new Korisnik();
                Session["Korisnik"] = korisnik;
            }


            Apartman        izabraniApartman = null;
            List <Apartman> apartmani        = new List <Apartman>();

            foreach (var Korisnik in Korisnici.dictionaryKorisnici.Values)
            {
                if (Korisnik.UlogaKorisnika == UlogaKorisnika.Domacin)
                {
                    foreach (var Apartman in Korisnik.Apartmani)
                    {
                        apartmani.Add(Apartman);
                    }
                }
            }

            try
            {
                izabraniApartman = apartmani.ElementAt(int.Parse(Request["id"]));
            }
            catch (Exception e) { }

            ViewBag.Korisnik = korisnik;

            if (izabraniApartman == null)
            {
                return(View("Greska"));
            }


            return(View(izabraniApartman));
        }
コード例 #24
0
        public string IzmeniApartman(Apartman zaIzmenu)
        {
            if (ApartmanGetter.GetApartmanByNaziv(zaIzmenu.Naziv) == null)
            {
                Apartman apartman = ApartmanGetter.GetApartmanByNaziv(apartmanZaIzmenu);
                apartman.BrGostiju     = zaIzmenu.BrGostiju;
                apartman.Tip           = zaIzmenu.Tip;
                apartman.BrSoba        = zaIzmenu.BrSoba;
                apartman.CenaPoNocenju = zaIzmenu.CenaPoNocenju;
                apartman.Naziv         = zaIzmenu.Naziv;
                apartman.Status        = zaIzmenu.Status;
                apartman.Prijava       = zaIzmenu.Prijava;
                apartman.Odjava        = zaIzmenu.Odjava;
                if (zaIzmenu.SadrzajApartmana.Count != 0)
                {
                    apartman.SadrzajApartmana = zaIzmenu.SadrzajApartmana;
                }
                if (zaIzmenu.DatumiZaIzdavanje.Count != 0)
                {
                    apartman.DatumiZaIzdavanje = zaIzmenu.DatumiZaIzdavanje;
                }
                if (zaIzmenu.Slike.Count != 0)
                {
                    apartman.Slike = zaIzmenu.Slike;
                }
                int brLinije = ApartmanGetter.GetBrojLinije(apartmanZaIzmenu);

                ApartmanFileWritter.ZapisiIzmenjen(brLinije, apartman);
                RezervacijaFileWritter.IzmeniNazivApartmana(apartmanZaIzmenu, apartman.Naziv);
                KomentarFileWritter.IzmeniNazivApartmana(apartmanZaIzmenu, apartman.Naziv);
                return("uspesno");
            }
            else
            {
                return("Apartman sa tim nazivom vec postoji.");
            }
        }
コード例 #25
0
        public IHttpActionResult RequestApartmentRentDates(RentDateModelBM rentD)
        {
            if (CheckRole("Guest"))
            {
                return(StatusCode(HttpStatusCode.Unauthorized));
            }

            Apartman apartman = context.Apartmans.Where(x => x.Deleted == false && x.ID == rentD.ApartmanID).FirstOrDefault();

            if (apartman == null)
            {
                return(BadRequest("Apartmant doesn't exist"));
            }

            bool     Available         = true;
            DateTime currentDate       = rentD.RentDate;
            int      normalPriceDays   = 0;
            int      discountPriceDays = 0;
            int      holidayPriceDays  = 0;

            for (int i = 0; i < rentD.RentDays; i++)
            {
                DatesModel datesModel = context.DatesModels.Where(x => x.ApartmanID == rentD.ApartmanID && x.RentDate.Year == currentDate.Year && x.RentDate.Month == currentDate.Month && x.RentDate.Day == currentDate.Day && x.Available == true && x.Deleted == false).FirstOrDefault();
                if (datesModel == null)
                {
                    Available = false;
                    break;
                }

                //praznici:
                var holidayCheck = context.Holidays.Where(x => x.Deleted == false && x.Holiday.Year == datesModel.RentDate.Year && x.Holiday.Month == datesModel.RentDate.Month && x.Holiday.Day == datesModel.RentDate.Day).FirstOrDefault();
                if (holidayCheck != null)
                {
                    holidayPriceDays++;
                }
                else
                {
                    if (datesModel.RentDate.DayOfWeek == DayOfWeek.Friday || datesModel.RentDate.DayOfWeek == DayOfWeek.Saturday || datesModel.RentDate.DayOfWeek == DayOfWeek.Sunday) // popust za vikend
                    {
                        discountPriceDays++;
                    }
                    else
                    {
                        normalPriceDays++;
                    }
                }


                currentDate = currentDate.AddDays(1);
            }

            if (!Available)
            {
                return(BadRequest("The dates you entered are not available"));
            }

            Reservation reservation = new Reservation();

            reservation.ApartmanID     = rentD.ApartmanID;
            reservation.GuestID        = rentD.GuestID;
            reservation.SingUpDate     = rentD.RentDate;
            reservation.NumberOfNights = rentD.RentDays;
            reservation.Stauts         = ReservationStatus.Created;
            // popust za vikend:
            reservation.TotalPrice = 0;
            //ako je praznik onda se povecava cena za 5 % praznik
            if (holidayPriceDays != 0)
            {
                reservation.TotalPrice += holidayPriceDays * (apartman.PricePerNight + ((5 * apartman.PricePerNight) / 100));
            }
            if (normalPriceDays != 0)
            {
                reservation.TotalPrice += normalPriceDays * apartman.PricePerNight;
            }
            if (discountPriceDays != 0)
            {
                reservation.TotalPrice += discountPriceDays * (apartman.PricePerNight - ((10 * apartman.PricePerNight) / 100)); //10% popusta
            }



            context.Reservations.Add(reservation);
            context.SaveChanges();

            currentDate = rentD.RentDate;
            for (int i = 0; i < rentD.RentDays; i++)
            {
                DatesModel datesModel = context.DatesModels.Where(x => x.ApartmanID == rentD.ApartmanID && x.RentDate.Year == currentDate.Year && x.RentDate.Month == currentDate.Month && x.RentDate.Day == currentDate.Day && x.Available == true && x.Deleted == false).FirstOrDefault();
                datesModel.Available = false;
                context.SaveChanges();

                currentDate = currentDate.AddDays(1);
            }

            return(Ok("Request sent"));
        }
コード例 #26
0
        private ApartmentBM GetApartmentInfo(Apartman apartman) //za sve GET Apartments
        {
            ApartmentBM apartmentBM = new ApartmentBM();

            apartmentBM.ID          = apartman.ID;
            apartmentBM.Type        = apartman.Type.ToString();
            apartmentBM.Status      = apartman.Status.ToString();
            apartmentBM.SingUpTime  = apartman.SingUpTime;
            apartmentBM.SingOutTime = apartman.SingOutTime;
            apartmentBM.RoomNumber  = apartman.RoomNumber;
            // apartmentBM.RentDates = apartman.RentDates;
            apartmentBM.PricePerNight = apartman.PricePerNight;


            apartmentBM.GuestNumber = apartman.GuestNumber;

            //location info:
            Location locationInfo = context.Locations.Where(x => x.ID == apartman.LocationID).FirstOrDefault();

            apartmentBM.Latitude  = locationInfo.Latitude;
            apartmentBM.Longitude = locationInfo.Longitude;

            //Coments into:
            apartmentBM.CommentIDs = new HashSet <int>();
            ICollection <Comment> comms = apartman.Comments; // wokrs

            if (comms != null)
            {
                foreach (var comment in comms)
                {
                    apartmentBM.CommentIDs.Add(comment.ID);
                }
            }
            //Amenities into:
            apartmentBM.Amenities = new HashSet <string>();
            ICollection <Amenitie> amms = apartman.Amenities; // wokrs

            if (amms != null)
            {
                foreach (var amm in amms)
                {
                    apartmentBM.Amenities.Add(amm.Name);
                }
            }


            //Adress
            apartmentBM.Streat       = locationInfo.Adress.Streat;
            apartmentBM.StreatNumber = locationInfo.Adress.StreatNumber;
            apartmentBM.ZipCode      = locationInfo.Adress.ZipCode;
            apartmentBM.Settlement   = locationInfo.Adress.Settlement;

            //Host:
            User Host = context.Users.Where(x => x.ID == apartman.HostID).FirstOrDefault();

            apartmentBM.HostID      = Host.ID;
            apartmentBM.HostName    = Host.Name;
            apartmentBM.HostSurname = Host.Surname;

            //pictures

            if (apartman.Pictures != null && apartman.Pictures != "")
            {
                apartmentBM.Pictures = new List <string>();
                string[] pictures = apartman.Pictures.Split(';');
                for (int i = 0; i < pictures.Length; i++)
                {
                    // byte[] imageBits = System.IO.File.ReadAllBytes(@"D:\Fax\6.Semestar\Web\Projekat\AirBnb_Web1\AirBnb_Web1\Resource\Images\BodyPart_ae1d3ad9-2b71-4222-8517-4821aa41f3ef.jpg");
                    //string imageBase64 = Convert.ToBase64String(imageBits);
                    if (pictures[i] != "")
                    {
                        apartmentBM.Pictures.Add("http://localhost:8080/" + pictures[i]);
                    }
                }
            }

            //RentDates:
            ICollection <DatesModel> datesModels = context.DatesModels.Where(x => x.ApartmanID == apartman.ID && x.Available == true && x.Deleted == false).ToList();

            if (datesModels != null && datesModels.Count > 0)
            {
                if (apartmentBM.RentDates == null)
                {
                    apartmentBM.RentDates = new HashSet <DateTime>();
                }

                foreach (DatesModel dateModel in datesModels)
                {
                    apartmentBM.RentDates.Add(dateModel.RentDate);
                }
            }
            return(apartmentBM);
        }
コード例 #27
0
        private bool GetApartmentFromBM(ApartmentBM apartmentBM) //add apartment
        {
            Apartman apartman = new Apartman();

            apartman.Type   = (apartmentBM.Type == ApartmanType.FullApartman.ToString()) ? ApartmanType.FullApartman : ApartmanType.Room;
            apartman.Status = ApartmanStatus.NotActive;
            apartman.HostID = apartmentBM.HostID;

            //promeni ovaj datetype :
            apartman.SingUpTime  = apartmentBM.SingUpTime;
            apartman.SingOutTime = apartmentBM.SingOutTime;
            apartman.RoomNumber  = apartmentBM.RoomNumber;

            apartman.PricePerNight = apartmentBM.PricePerNight;
            //pics
            apartman.Pictures = "";
            if (apartmentBM.Pictures != null)
            {
                foreach (string pic in apartmentBM.Pictures)
                {
                    apartman.Pictures = pic + ';';
                }
            }



            apartman.GuestNumber = apartmentBM.GuestNumber;

            Adress adress1 = new Adress();

            adress1.Streat       = apartmentBM.Streat;
            adress1.StreatNumber = apartmentBM.StreatNumber;
            adress1.ZipCode      = apartmentBM.ZipCode;
            adress1.Settlement   = apartmentBM.Settlement;
            context.Adresss.Add(adress1);
            context.SaveChanges();

            //location info:
            Location locationInfo = new Location();

            locationInfo.Latitude  = apartmentBM.Latitude;
            locationInfo.Longitude = apartmentBM.Longitude;
            locationInfo.AdressID  = adress1.ID;
            context.Locations.Add(locationInfo);
            context.SaveChanges();

            apartman.LocationID = locationInfo.ID;

            //Amenities:
            apartman.Amenities = new List <Amenitie>();
            foreach (string amm in apartmentBM.Amenities)
            {
                Amenitie amenitie = context.Amenities.Where(x => x.Name == amm).FirstOrDefault();

                apartman.Amenities.Add(amenitie);
            }
            context.SaveChanges();

            apartman.Deleted = false;
            context.Apartmans.Add(apartman);
            context.SaveChanges();
            //zbog slike mi treba ID:
            apartmentBM.ID = apartman.ID;


            return(true);
        }
コード例 #28
0
        public int Put([FromBody] Apartman a)
        {
            ApartmanProvider provider = new ApartmanProvider();

            return(provider.EditApartman(a));
        }
コード例 #29
0
        public ActionResult IzmenaApartmana(string tipApartmana, string brSoba, string brGostiju, string ulica, string broj, string grad, string postBroj, string datumiIzdavanje, string cena, string statusApartmana, string vremePrijava, string vremeOdjava, List <string> sadrzajiApartmana, string idApartmana)
        {
            Korisnik kor = (Korisnik)Session["korisnik"];

            if (kor == null)
            {
                kor = new Korisnik();
                Session["korisnik"] = kor;
            }

            if (brSoba == "" || brGostiju == "" || ulica == "" || broj == "" || grad == "" || postBroj == "" || cena == "" || vremePrijava == "" || vremeOdjava == "" || datumiIzdavanje == "" || sadrzajiApartmana.Count == 0)
            {
                ViewBag.ErrorMessage = "Ne smete nijedno  polje ostaviti prazno, da biste uspesno mogli da izmenite apartman!";
                return(View("Greska"));
            }

            foreach (Korisnik k in Database.registrovaniKorisnici.Values)
            {
                if (k.KorisnickoIme == kor.KorisnickoIme && k.Uloga == Uloga.DOMACIN)
                {
                    TipApartmana tip;

                    if (tipApartmana == "CEO_APARTMAN")
                    {
                        tip = TipApartmana.CEO_APARTMAN;
                    }
                    else
                    {
                        tip = TipApartmana.SOBA;
                    }

                    StatusApartmana status;

                    if (statusApartmana == "AKTIVAN")
                    {
                        status = StatusApartmana.AKTIVAN;
                    }
                    else
                    {
                        status = StatusApartmana.NEAKTIVAN;
                    }

                    Adresa   adresa   = new Adresa(broj, ulica, postBroj, grad);
                    Lokacija lokacija = new Lokacija(45.245, 19.87, adresa);

                    Apartman apartman = new Apartman();
                    foreach (int id in Database.sviApartmani.Keys)
                    {
                        if (id == Int32.Parse(idApartmana))
                        {
                            Database.sviApartmani.TryGetValue(id, out apartman);
                        }
                    }

                    string[]        datumi = datumiIzdavanje.Split(' ', ',');
                    string[]        split;
                    List <DateTime> noviDatumi = new List <DateTime>();

                    foreach (string dat in datumi)
                    {
                        split = dat.Split('-', '.', '/');
                        DateTime datum = new DateTime(Int32.Parse(split[2]), Int32.Parse(split[1]), Int32.Parse(split[0]));
                        noviDatumi.Add(datum);
                    }

                    SadrzajApartmana        sadrzaj;
                    List <SadrzajApartmana> sadrzajiAp = new List <SadrzajApartmana>();

                    foreach (string s in sadrzajiApartmana)
                    {
                        foreach (SadrzajApartmana sadrz in Database.sadrzajiApartmana.Values)
                        {
                            if (sadrz.Naziv == s)
                            {
                                sadrzaj = new SadrzajApartmana(sadrz.Id, sadrz.Naziv);
                                sadrzajiAp.Add(sadrzaj);
                            }
                        }
                    }

                    Database.domacini[apartman.Domacin.KorisnickoIme].ApartmaniZaIzdavanje.Remove(apartman);
                    Database.sviApartmani.Remove(Int32.Parse(idApartmana));

                    apartman.TipApartman          = tip;
                    apartman.BrojSoba             = Int32.Parse(brSoba);
                    apartman.BrojGostiju          = Int32.Parse(brGostiju);
                    apartman.CenaPoNoci           = Double.Parse(cena);
                    apartman.DatumiZaIzdavanje    = noviDatumi;
                    apartman.DostupnostPoDatumima = noviDatumi;
                    apartman.Lokacija             = lokacija;
                    apartman.Status            = status;
                    apartman.VremeZaPrijavu    = vremePrijava;
                    apartman.VremeZaOdjavu     = vremeOdjava;
                    apartman.SadrzajiApartmana = sadrzajiAp;

                    if (Request.Files.Count > 0)
                    {
                        for (int i = 0; i < Request.Files.Count; i++)
                        {
                            var file = Request.Files[i];

                            if (file != null && file.ContentLength > 0)
                            {
                                var fileName = Path.GetFileName(file.FileName);
                                var path     = Path.Combine(Server.MapPath("~/Images/"), fileName);

                                file.SaveAs(path);
                                Image uf = new Image(fileName, path);
                                apartman.Slike.Add(uf);
                            }
                        }
                    }


                    Database.sviApartmani.Add(Int32.Parse(idApartmana), apartman);

                    Database.domacini[kor.KorisnickoIme].ApartmaniZaIzdavanje.Add(apartman);

                    Database.UpisiSveApartmane();

                    ViewBag.Message = "Apartman je uspesno izmenjen!";
                    return(View("IzmenaPodatakaRez"));
                }
            }

            ViewBag.Message = "Apartman nije izmenjen dogodila se greska.";
            return(View("IzmenaPodatakaRez"));
        }
コード例 #30
0
        public ActionResult KreirajApartman(string tipApartmana, string brSoba, string brGostiju, string ulica, string broj, string grad, string postBroj, string datumiIzdavanje, string cena, string statusApartmana, string vremePrijava, string vremeOdjava, List <string> sadrzajiApartmana)
        {
            Korisnik kor = (Korisnik)Session["korisnik"];

            if (kor == null)
            {
                kor = new Korisnik();
                Session["korisnik"] = kor;
            }


            if (brSoba == "" || brGostiju == "" || ulica == "" || broj == "" || grad == "" || postBroj == "" || cena == "" || vremePrijava == "" || vremeOdjava == "" || datumiIzdavanje == "" || sadrzajiApartmana.Count == 0)
            {
                ViewBag.ErrorMessage = "Morate popuniti sva polja da bi ste kreirali apartman!";
                return(View("Greska"));
            }

            foreach (Korisnik k in Database.registrovaniKorisnici.Values)
            {
                if (kor.KorisnickoIme == k.KorisnickoIme && k.Uloga == Uloga.DOMACIN)
                {
                    TipApartmana tip;

                    if (tipApartmana == "CEO_APARTMAN")
                    {
                        tip = TipApartmana.CEO_APARTMAN;
                    }
                    else
                    {
                        tip = TipApartmana.SOBA;
                    }

                    StatusApartmana status;

                    if (statusApartmana == "NEAKTIVAN")
                    {
                        status = StatusApartmana.NEAKTIVAN;
                    }
                    else
                    {
                        status = StatusApartmana.AKTIVAN;
                    }

                    Adresa   adresa   = new Adresa(broj, ulica, postBroj, grad);
                    Lokacija lokacija = new Lokacija(45.18, 19.87, adresa);

                    Domacin domacin = new Domacin(kor.Ime, kor.Prezime, kor.KorisnickoIme, kor.Lozinka, kor.Pol);


                    Random id = new Random();

                    Apartman apartman = new Apartman(id.Next(0, 700), tip, int.Parse(brSoba), int.Parse(brGostiju), lokacija, domacin, double.Parse(cena), status, vremePrijava, vremeOdjava);

                    string[] datumi = datumiIzdavanje.Split(' ', ',');
                    string[] split;
                    foreach (string dat in datumi)
                    {
                        split = dat.Split('-', '.', '/');
                        DateTime datum = new DateTime(Int32.Parse(split[2]), Int32.Parse(split[1]), Int32.Parse(split[0]));
                        apartman.DatumiZaIzdavanje.Add(datum);
                        apartman.DostupnostPoDatumima.Add(datum);
                    }

                    if (Request.Files.Count > 0)
                    {
                        for (int i = 0; i < Request.Files.Count; i++)
                        {
                            var file = Request.Files[i];

                            if (file != null && file.ContentLength > 0)
                            {
                                var fileName = Path.GetFileName(file.FileName);
                                var path     = Path.Combine(Server.MapPath("~/Images/"), fileName);

                                file.SaveAs(path);
                                Image uf = new Image(fileName, path);
                                apartman.Slike.Add(uf);
                            }
                        }
                    }

                    SadrzajApartmana sadrzaj; //ovdeeeeeeeeeeeeeeeeeeee
                    foreach (string s in sadrzajiApartmana)
                    {
                        foreach (SadrzajApartmana sadrz in Database.sadrzajiApartmana.Values)
                        {
                            if (sadrz.Naziv == s)
                            {
                                sadrzaj = new SadrzajApartmana(sadrz.Id, sadrz.Naziv);
                                apartman.SadrzajiApartmana.Add(sadrzaj);
                            }
                        }
                    }

                    Database.sviApartmani.Add(apartman.Id, apartman);

                    Database.domacini[domacin.KorisnickoIme].ApartmaniZaIzdavanje.Add(apartman);

                    Database.UpisiSveApartmane();

                    ViewBag.Message = "Apartman je uspesno kreiran.";

                    return(View("KreiranjeApartmanaRez"));
                }
            }

            ViewBag.Message = "Apartman nije kreiran, desila neka greska.Molimo Vas, pokustajte ponovo!";

            return(View("KreiranjeApartmanaRez"));
        }