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); }
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)); }