summit_id = $summit_id; $this->email_to = $email_to; } /** * @param ISummitRepository $summit_repository * @param IRegistrationIngestionService $service * @param ITransactionService $tx_service */ public function handle ( ISummitRepository $summit_repository, IRegistrationIngestionService $service, ITransactionService $tx_service ) { try { Log::debug("IngestSummitExternalRegistrationData::handle"); $tx_service->transaction(function () use ($summit_repository, $service) { $summit = $summit_repository->getById($this->summit_id); if (is_null($summit) || !$summit instanceof Summit) return; $service->ingestSummit($summit); if(!empty($this->email_to)) { Log::debug(sprintf("IngestSummitExternalRegistrationData::handle - sending result email to %s", $this->email_to)); SuccessfulIIngestionEmail::dispatch($this->email_to, $summit); } }); } catch (ValidationException $ex){ Log::warning($ex); if(!empty($this->email_to)) { $summit = $summit_repository->getById($this->summit_id); if (is_null($summit) || !$summit instanceof Summit) return; UnsuccessfulIIngestionEmail::dispatch($ex->getMessage(), $this->email_to, $summit); } } catch (\Exception $ex){ Log::error($ex); if(!empty($this->email_to)) { $summit = $summit_repository->getById($this->summit_id); if (is_null($summit) || !$summit instanceof Summit) return; UnsuccessfulIIngestionEmail::dispatch($ex->getMessage(), $this->email_to, $summit); } } } }