예제 #1
0
        public JsonResult CheckAccomodationAvailibility(BookingGetViewModel bookingViewModel)
        {
            JsonResult result = new JsonResult();


            // var model = accomodationService.SearchAccomodationsAvailability(bookingViewModel.AccomodationPackageId);
            var model = accomodationService.CheckAccomodationsAvailability(bookingViewModel.AccomodationPackageId, bookingViewModel.CheckIn, bookingViewModel.CheckOut);
            //var bdate = model.Select(a => a.Bookings.Select(b => b.FromDate));

            //lock (Lock)
            //{
            bool state = true;

            if (model != null && model.Count() >= bookingViewModel.NoOfAccomodation)
            {
                //Session["Key"] = "Key";
                var roomNos = model.Select(a => a.Id).Take(bookingViewModel.NoOfAccomodation).ToList();
                var ids     = string.Join(",", roomNos);

                //bookingService.UpdateState(roomNos , state);

                result.Data = new { success = true, message = "Rooms Availabale", data = ids };
            }
            else if (model.Count() < bookingViewModel.NoOfAccomodation)
            {
                result.Data = new
                {
                    success = false,
                    message = "You Asked for " + bookingViewModel.NoOfAccomodation +
                              " Accomodations but " + model.Count() + " Accomodation Availabale Only , plz Try Again"
                };
            }
            else
            {
                result.Data = new { success = false, message = "NO Room(s) Availabale at the moment try again later!" };
            }
            //}
            // ccheck here wheteher room available or not
            return(result);
        }
예제 #2
0
        public ActionResult Action(BookingGetViewModel bookingViewModel)
        {
            //to check if Accomodation is Available
            //var avialableAccomodations = accomodationService.CheckAccomodationsAvailability(bookingViewModel.AccomodationPackageId, bookingViewModel.CheckIn, bookingViewModel.CheckOut);
            //var bdate = model.Select(a => a.Bookings.Select(b => b.FromDate));

            //if (avialableAccomodations != null && avialableAccomodations.Count() >= bookingViewModel.NoOfAccomodation)
            //{
            //var roomNos = avialableAccomodations.Select(a => a.Id).Take(bookingViewModel.NoOfAccomodation).ToList();

            //int[] ids = roomNos.ToArray();

            // to convert list<int> to array delimeted (seperated) by ","
            //var ids = string.Join(",", roomNos);

            //foreach (var room in roomNos)
            //{

            //}
            //bookingViewModel.AccomodationId = ids;
            //bookingViewModel.AccomodationId = roomsAvailable;

            //if (bookingViewModel.BreakFast)
            //{
            //    bookingViewModel.BreakFast = true;
            //}
            //ViewBag.result = true;
            //ViewBag.msg =  "Congratulations! required rooms are available.";
            //avialableAccomodations.Data = new { success = true, message = "Rooms Availabale", data = roomNos };

            //}
            //else if (avialableAccomodations != null && avialableAccomodations.Count() < bookingViewModel.NoOfAccomodation)
            //{
            //    //avialableAccomodations.Data = new
            //    //{
            //    //    success = false,
            //    //    message = "You Asked for " + bookingViewModel.NoOfAccomodation +
            //    //              " Accomodations but " + model.Count() + " Accomodation Availabale Only"
            //    //};
            //    ViewBag.result = false;
            //    ViewBag.msg = "You Asked for " + bookingViewModel.NoOfAccomodation +
            //                      " Accomodations but " + avialableAccomodations.Count() + " Accomodation Availabale Only.";

            //}
            //else
            //{
            //avialableAccomodations.Data = new { success = false, message = "Rooms not Availabale" };
            //    ViewBag.result = false;
            //    ViewBag.msg = "sorry! All rooms are Booked.";

            //}
            //

            // calculate total bill including taxes and fbreakfast charges


            bookingViewModel.AccomodationPackage =
                accomodationPackagesService.GetAccomodationPackageById(bookingViewModel.AccomodationPackageId);
            var model = bookingViewModel;


            // ccheck here wheteher room available or not
            return(PartialView("_Action", model));
        }