コード例 #1
0
        public ActionResult Create(AvailabilityBindingModel model)
        {
            ReservationCreateBindingModel input = new ReservationCreateBindingModel
            {
                Arrival   = model.Arrival,
                Departure = model.Departure,
                Additions = this.additionsService.GetAdditionBindingModels(),
            };

            return(this.View(input));
        }
コード例 #2
0
        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());
        }
コード例 #3
0
        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));
        }
コード例 #4
0
 public IActionResult Index(AvailabilityBindingModel model)
 {
     return(this.View(model));
 }