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());
 }