public IActionResult CheckReservations([FromBody] AvailabilityRequest availabilityRequest) { // Add the campsites foreach (var campsite in availabilityRequest.Campsites) { this.reservationService.CreateCampsite(campsite); } // Add the reservations foreach (var reservation in availabilityRequest.Reservations) { this.reservationService.CreateReservation(reservation); } // Search for availability var searchSpan = new DateTimeSpan(availabilityRequest.Search.StartDate, availabilityRequest.Search.EndDate); // Return as Json return(Json(this.reservationService.GetAvailableCampsites(searchSpan, 1))); }
public IEnumerable <Campsite> GetAvailableCampsites(DateTimeSpan requestedDates, int numberOfDaysGap) { return(campsites.Where(c => c.CanBeReserved(requestedDates, numberOfDaysGap))); }
public bool Overlaps(DateTimeSpan spanToCompare) { return(this.StartDate <= spanToCompare.EndDate && spanToCompare.StartDate <= this.EndDate); }