public function Create($request, WebServiceUserSession $session) { $facade = new ReservationRequestResponseFacade($request, $session); $validationErrors = $this->ValidateRequest($facade); if (count($validationErrors) > 0) { return new ReservationControllerResult(null, $validationErrors); } $presenter = $this->factory->Create($facade, $session); $reservation = $presenter->BuildReservation(); $presenter->HandleReservation($reservation); return new ReservationControllerResult($facade->ReferenceNumber(), $facade->Errors(), $facade->RequiresApproval()); }