public ActionResult Create(AvailabilityBindingModel model) { ReservationCreateBindingModel input = new ReservationCreateBindingModel { Arrival = model.Arrival, Departure = model.Departure, Additions = this.additionsService.GetAdditionBindingModels(), }; return(this.View(input)); }
public ICollection <Bungalow> CheckAvailability(AvailabilityBindingModel model) { var reservationDates = new HashSet <DateTime>(); var reservationLength = (model.Departure.Date - model.Arrival.Date).Days; for (int i = 0; i < reservationLength; i++) { reservationDates.Add(model.Arrival.AddDays(i)); } return(this.bungalowsRepository.All() .Include(b => b.DatesAvailable.Where(d => d.IsAvailable == true && d.IsDeleted == false)) .ToList() .Where(b => b.IsAvailable == true && reservationDates.All(d => b.DatesAvailable.Any(date => d == date.Date))) .ToList()); }
public async Task <IActionResult> CheckAvailability(AvailabilityBindingModel model) { //Add wheather forecast api for the selected days if there are available if (!this.ModelState.IsValid) { model.ShouldShowAvailabilityDetails = false; return(this.RedirectToAction("Index", model)); } ICollection <Bungalow> bungalows = this.reservationsService.CheckAvailability(model); model.ShouldShowAvailabilityDetails = true; model.IsAvailable = bungalows.Count > 0; return(this.RedirectToAction("Index", model)); }
public IActionResult Index(AvailabilityBindingModel model) { return(this.View(model)); }