public function Update($request, $session, $referenceNumber, $updateScope) { $facade = new ReservationUpdateRequestResponseFacade($request, $session, $referenceNumber, $updateScope); $validationErrors = $this->ValidateUpdateRequest($facade, $referenceNumber, $updateScope); if (count($validationErrors) > 0) { return new ReservationControllerResult(null, $validationErrors); } $presenter = $this->factory->Update($facade, $session); $reservation = $presenter->BuildReservation(); $presenter->HandleReservation($reservation); return new ReservationControllerResult($facade->ReferenceNumber(), $facade->Errors(), $facade->RequiresApproval()); }