예제 #1
0
 /**
  * @param BlackoutSeries $blackoutSeries
  * @param IReservationConflictResolution $reservationConflictResolution
  * @return array|ReservationItemView[]
  */
 private function GetConflictingReservations($blackoutSeries, $reservationConflictResolution)
 {
     $conflictingReservations = array();
     $blackouts = $blackoutSeries->AllBlackouts();
     foreach ($blackouts as $blackout) {
         $existingReservations = $this->reservationViewRepository->GetReservationList($blackout->StartDate(), $blackout->EndDate());
         foreach ($existingReservations as $existingReservation) {
             if ($blackoutSeries->ContainsResource($existingReservation->ResourceId) && $blackout->Date()->Overlaps($existingReservation->Date)) {
                 if (!$reservationConflictResolution->Handle($existingReservation)) {
                     $conflictingReservations[] = $existingReservation;
                 }
             }
         }
     }
     return $conflictingReservations;
 }