/**
  * Akce pro dokončení uploadu datasetu (zpracování získaného JSONu, přechod na vytvoření nového datového zdroje)
  * @param string $uploadConfig
  * @param string $dataServiceResult
  * @throws \Exception
  * @throws \Nette\Utils\JsonException
  */
 public function actionUploadFinish($uploadConfig, $dataServiceResult)
 {
     $uploadConfig = Json::decode($uploadConfig, Json::FORCE_ARRAY);
     $dataServiceResult = Json::decode($dataServiceResult, Json::FORCE_ARRAY);
     $currentUser = $this->getCurrentUser();
     //vytvoření a uložení datasetu
     if (!empty($dataServiceResult['id']) && !empty($dataServiceResult['type']) && !empty($dataServiceResult['name'])) {
         $dbDatasource = new DbDatasource(@$dataServiceResult['id'], @$dataServiceResult['name'], @$dataServiceResult['type'], @$dataServiceResult['size']);
         $datasource = $this->datasourcesFacade->prepareNewDatasourceFromDbDatasource($dbDatasource, $currentUser);
         $this->datasourcesFacade->saveDatasource($datasource);
     } else {
         throw new \Exception('Upload finish failed.');
     }
     //aktualizace názvů datových sloupců
     if (!empty($uploadConfig['columnNames'])) {
         $datasourceColumnNames = [];
         //vytvoříme seznam sloupců
         foreach ($uploadConfig['dataTypes'] as $i => $dataType) {
             if ($dataType == DbField::TYPE_NOMINAL || $dataType == DbField::TYPE_NUMERIC) {
                 $datasourceColumnNames[] = $uploadConfig['columnNames'][$i];
             }
         }
         $this->datasourcesFacade->renameDatasourceColumns($datasource, $datasourceColumnNames, $currentUser);
     }
     //odeslání URL pro přesměrování...
     $this->sendJsonResponse(['state' => 'OK', 'message' => 'Datasource created successfully.', 'redirect' => $this->link('Data:newMinerFromDatasource', ['datasource' => $datasource->datasourceId])]);
 }