/**
  * @param ISurveyDynamicEntityStep $step
  * @param int $creator_id
  * @return IEntitySurvey
  */
 public function buildEntitySurvey(ISurveyDynamicEntityStep $step, $creator_id)
 {
     $template_repository = $this->template_repository;
     $survey_repository = $this->survey_repository;
     $survey_builder = $this->survey_builder;
     $member_repository = $this->member_repository;
     return $this->tx_manager->transaction(function () use($step, $creator_id, $survey_builder, $member_repository, $template_repository, $survey_repository) {
         $owner = $member_repository->getById($creator_id);
         if (is_null($owner)) {
             throw new NotFoundEntityException('Member', '');
         }
         $entity_survey = $survey_builder->buildEntitySurvey($step->survey(), $step->template()->getEntity(), $owner);
         $step->addEntitySurvey($entity_survey);
         return $entity_survey;
     });
 }