/**
  * Reformat array for createAction
  *
  * @return void
  */
 protected function reformatParamsForAction()
 {
     BasicFileUtility::rewriteFilesArrayToPreventDuplicatFilenames();
     $arguments = $this->request->getArguments();
     if (!isset($arguments['field'])) {
         return;
     }
     $newArguments = ['mail' => $arguments['mail']];
     // allow subvalues in new property mapper
     $mailMvcArgument = $this->arguments->getArgument('mail');
     $propertyMappingConfiguration = $mailMvcArgument->getPropertyMappingConfiguration();
     $propertyMappingConfiguration->allowProperties('answers');
     $propertyMappingConfiguration->allowCreationForSubProperty('answers');
     $propertyMappingConfiguration->allowModificationForSubProperty('answers');
     $propertyMappingConfiguration->allowProperties('form');
     $propertyMappingConfiguration->allowCreationForSubProperty('form');
     $propertyMappingConfiguration->allowModificationForSubProperty('form');
     // allow creation of new objects (for validation)
     $propertyMappingConfiguration->setTypeConverterOptions('TYPO3\\CMS\\Extbase\\Property\\TypeConverter\\PersistentObjectConverter', [PersistentObjectConverter::CONFIGURATION_CREATION_ALLOWED => true, PersistentObjectConverter::CONFIGURATION_MODIFICATION_ALLOWED => true]);
     $i = 0;
     foreach ((array) $arguments['field'] as $marker => $value) {
         // ignore internal fields (honeypod)
         if (substr($marker, 0, 2) === '__') {
             continue;
         }
         $fieldUid = $this->fieldRepository->getFieldUidFromMarker($marker, $arguments['mail']['form']);
         // Skip fields without Uid (secondary password, upload)
         if ($fieldUid === 0) {
             continue;
         }
         // allow subvalues in new property mapper
         $propertyMappingConfiguration->forProperty('answers')->allowProperties($i);
         $propertyMappingConfiguration->forProperty('answers.' . $i)->allowAllProperties();
         $propertyMappingConfiguration->allowCreationForSubProperty('answers.' . $i);
         $propertyMappingConfiguration->allowModificationForSubProperty('answers.' . $i);
         /** @var Field $field */
         $field = $this->fieldRepository->findByUid($fieldUid);
         $valueType = $field->dataTypeFromFieldType($this->fieldRepository->getFieldTypeFromMarker($marker, $arguments['mail']['form']));
         if ($valueType === 3 && is_array($value)) {
             $value = BasicFileUtility::getUniqueNamesForFileUploads($value, $this->settings, false);
         }
         if (is_array($value)) {
             if (empty($value)) {
                 $value = '';
             } else {
                 $value = json_encode($value);
             }
         }
         $newArguments['mail']['answers'][$i] = ['field' => strval($fieldUid), 'value' => $value, 'valueType' => $valueType];
         // edit form: add answer id
         if (!empty($arguments['field']['__identity'])) {
             $answer = $this->answerRepository->findByFieldAndMail($fieldUid, $arguments['field']['__identity']);
             if ($answer !== null) {
                 $newArguments['mail']['answers'][$i]['__identity'] = $answer->getUid();
             }
         }
         $i++;
     }
     // edit form: add mail id
     if (!empty($arguments['field']['__identity'])) {
         $newArguments['mail']['__identity'] = $arguments['field']['__identity'];
     }
     $this->request->setArguments($newArguments);
     $this->request->setArgument('field', null);
 }