private function TryPageLoad($currentUser)
 {
     $fileId = $this->page->GetFileId();
     $referenceNumber = $this->page->GetReferenceNumber();
     Log::Debug('Trying to load reservation attachment. FileId: %s, ReferenceNumber %s', $fileId, $referenceNumber);
     $attachment = $this->reservationRepository->LoadReservationAttachment($fileId);
     if ($attachment == null) {
         Log::Error('Error loading resource attachment, attachment not found');
         return false;
     }
     $reservation = $this->reservationRepository->LoadByReferenceNumber($referenceNumber);
     if ($reservation == null) {
         Log::Error('Error loading resource attachment, reservation not found');
         return false;
     }
     if ($reservation->SeriesId() != $attachment->SeriesId()) {
         Log::Error('Error loading resource attachment, attachment not associated with reservation');
         return false;
     }
     if (!$this->permissionService->CanAccessResource(new ReservationResource($reservation->ResourceId()), $currentUser)) {
         Log::Error('Error loading resource attachment, insufficient permissions');
         return false;
     }
     return $attachment;
 }
 public function testShowsErrorFileDoesNotBelongToReservation()
 {
     $fileId = 110;
     $resourceId = 1909;
     $referenceNumber = 'rn';
     $seriesId = 1;
     $fileSeriesId = 2;
     $builder = new ExistingReservationSeriesBuilder();
     $builder->WithId($seriesId);
     $builder->WithPrimaryResource(new FakeBookableResource($resourceId));
     $reservationSeries = $builder->Build();
     $reservationAttachment = new FakeReservationAttachment($fileId);
     $reservationAttachment->SetSeriesId($fileSeriesId);
     $this->page->expects($this->once())->method('GetFileId')->will($this->returnValue($fileId));
     $this->page->expects($this->once())->method('GetReferenceNumber')->will($this->returnValue($referenceNumber));
     $this->reservationRepository->expects($this->once())->method('LoadReservationAttachment')->with($this->equalTo($fileId))->will($this->returnValue($reservationAttachment));
     $this->reservationRepository->expects($this->once())->method('LoadByReferenceNumber')->with($this->equalTo($referenceNumber))->will($this->returnValue($reservationSeries));
     $this->page->expects($this->once())->method('ShowError');
     $this->presenter->PageLoad($this->fakeUser);
 }