public function Update($blackoutInstanceId, DateRange $blackoutDate, $resourceIds, $title, IReservationConflictResolution $reservationConflictResolution, IRepeatOptions $repeatOptions, $scope) { if (!$blackoutDate->GetEnd()->GreaterThan($blackoutDate->GetBegin())) { return new BlackoutDateTimeValidationResult(); } $userId = ServiceLocator::GetServer()->GetUserSession()->UserId; $blackoutSeries = $this->LoadBlackout($blackoutInstanceId, $userId); if ($blackoutSeries == null) { return new BlackoutSecurityValidationResult(); } $blackoutSeries->Update($userId, $scope, $title, $blackoutDate, $repeatOptions, $resourceIds); $conflictingBlackouts = $this->GetConflictingBlackouts($blackoutSeries); $conflictingReservations = array(); if (empty($conflictingBlackouts)) { $conflictingReservations = $this->GetConflictingReservations($blackoutSeries, $reservationConflictResolution); } $blackoutValidationResult = new BlackoutValidationResult($conflictingBlackouts, $conflictingReservations); if ($blackoutValidationResult->CanBeSaved()) { $this->blackoutRepository->Update($blackoutSeries); } return $blackoutValidationResult; }