Example #1
0
        public ActionResult SearchAccomodation(SearchAccomodationViewModel model, bool tableview = false)
        {
            ViewBag.view = tableview;
            //HomeViewModel model = new HomeViewModel();
            List <AccomodationPackageCountViewModel> accomodationPackageCountViewModels = new List <AccomodationPackageCountViewModel>();


            model.AccomodationTypes = accomodationTypesService.GetAllAccomodationTypes().ToList();
            var accomodationPacakges = accomodationService.CheckAccomodationsAvailability(null, model.CheckIn, model.CheckOut);

            foreach (var item in accomodationPacakges.DistinctBy(a => a.AccomodationPackage.Id))
            {
                //var count = accomodationService.CountAccomodationByPackage(item.AccomodationPackage.Id);
                var count = accomodationPacakges.Count(b => b.AccomodationPackage.Id == item.AccomodationPackage.Id);
                if (count > 0)
                {
                    AccomodationPackageCountViewModel obj = new AccomodationPackageCountViewModel();
                    obj.AccomodationPackages = item.AccomodationPackage;
                    obj.RoomCount            = count;
                    accomodationPackageCountViewModels.Add(obj);
                }
            }

            model.AccomodationPackageCountViewModels = accomodationPackageCountViewModels;

            return(View(model));
        }
Example #2
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);
        }