/** * @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; }