/** * @param ReservationSeries $reservationSeries * @param IReservationSaveResultsView $view * @return bool if the reservation was handled or not */ public function Handle(ReservationSeries $reservationSeries, IReservationSaveResultsView $view) { $validationResult = $this->validationService->Validate($reservationSeries); $result = $validationResult->CanBeSaved(); if ($validationResult->CanBeSaved()) { try { $this->persistenceService->Persist($reservationSeries); } catch (Exception $ex) { Log::Error('Error saving reservation: %s', $ex); throw $ex; } $this->notificationService->Notify($reservationSeries); $view->SetSaveSuccessfulMessage($result); } else { $view->SetSaveSuccessfulMessage($result); $view->SetErrors($validationResult->GetErrors()); } $view->SetWarnings($validationResult->GetWarnings()); return $result; }
/** * @param $reservationSeries ReservationSeries|ExistingReservationSeries * @return void */ public function Notify($reservationSeries) { // implement any custom post reservation created logic here // then let the main application continue $this->base->Notify($reservationSeries); }