public ActionResult Listing(string search, int?accomodationPackageID, int?page) { page = page ?? 1; //viewModel var viewModel = new AccomodationListingViewModel(); //fetching Accomodation Packages var accomodation = _service.GetAllAccomodations().Where(x => x.IsActive == true).ToList(); viewModel.Accomodations = accomodation; if (!string.IsNullOrEmpty(search)) { viewModel.Accomodations = viewModel.Accomodations.Where(ap => ap.Name.ToLower().Contains(search.ToLower())).ToList(); } if (accomodationPackageID.HasValue && accomodationPackageID.Value > 0) { viewModel.Accomodations = viewModel.Accomodations.Where(ap => ap.AccomodationPackageID.Equals(accomodationPackageID.Value)).ToList(); } viewModel.Pager = new PagerViewModel(viewModel.Accomodations.Count, page, 3); var skip = (page.Value - 1) * 3; // 3 is the records to skip.. viewModel.Accomodations = viewModel.Accomodations.OrderBy(a => a.ID).Skip(skip).Take(3).ToList(); return(PartialView("_Listing", viewModel)); }
public JsonResult CheckAvailability(DateTime checkIn, DateTime checkOut, int AccomodationPackageID, string userID) { var json = new JsonResult(); //var bookedRooms = new object(); var accomodationPackage = _serviceAccomodationPackage.GetAccomodationPackageById(AccomodationPackageID); var accomodations = _serviceAccomodation.GetAllAccomodations().Where(x => !x.BookedRooms.Any(r => r.Booking.ToDate >= checkIn && r.Booking.FromDate <= checkOut) && x.IsActive == true && x.AccomodationPackageID == AccomodationPackageID).ToList(); var cnfrmBookedRooms = accomodations.Select(a => new Accomodations { ID = a.ID, Name = a.Name + "-" + a.AccomodationPackage.FeePerNight + " AED" }); var Duration = (checkOut - checkIn).TotalDays; //calculating time of stay... var totalAmount = accomodationPackage.FeePerNight * Convert.ToDecimal(Duration); //Room Charges.. if (accomodations.Count != 0 && accomodations != null) { json.Data = new { Success = true, Accomodations = cnfrmBookedRooms, Total = totalAmount, Duration = Duration, Message = "" }; } else { json.Data = new { Success = false, Accomodations = cnfrmBookedRooms, Total = 0, Duration = 0, Message = "No rooms found for current Package" }; } return(json); //Availabe Rooms..... }
public ActionResult GetAccomodation(int?accomodationTypeID, int?accomodationPackageID) { var accomodationType = _serviceAccomodationType.GetAccomodationTypeById(accomodationTypeID.Value); var accomodationPackages = _serviceAccomodationPackage.GetAllAccomodationPackages().Where(x => x.AccomodationTypeID == accomodationType.ID).ToList(); var selectedPackageID = accomodationPackageID.HasValue ? accomodationPackageID.Value : accomodationPackages.First().ID; var accomodations = _serviceAccomodation.GetAllAccomodations().Where(x => x.AccomodationPackageID == selectedPackageID).ToList(); var viewModel = new AccomodationViewModels() { AccomodationType = accomodationType, AccomodationPackages = accomodationPackages, SelectedAccomodationPackageID = selectedPackageID, Accomodations = accomodations }; return(View(viewModel)); }