/**
* Import data model.
*
* @param Data $model
* @param bool $force if set to true items not in the import will be deleted
*
* @return Result
*/
private function importDataModel(Data $model, $force)
{
// Import schema
$localesImportResult = Craft::app()->schematic_locales->import($model->getAttribute('locales', $force));
$pluginImportResult = Craft::app()->schematic_plugins->import($model->getAttribute('plugins', $force));
$assetSourcesImportResult = Craft::app()->schematic_assetSources->import($model->getAttribute('assetSources'), $force);
$fieldImportResult = Craft::app()->schematic_fields->import($model->getAttribute('fields'), $force);
$globalSetsImportResult = Craft::app()->schematic_globalSets->import($model->getAttribute('globalSets'), $force);
$sectionImportResult = Craft::app()->schematic_sections->import($model->getAttribute('sections'), $force);
$userGroupImportResult = Craft::app()->schematic_userGroups->import($model->getAttribute('userGroups'), $force);
$userImportResult = Craft::app()->schematic_users->import($model->getAttribute('users'), true);
// Element index settings are supported from Craft 2.5
if (version_compare(CRAFT_VERSION, '2.5', '>=')) {
$elementIndexSettingsImportResult = Craft::app()->schematic_elementIndexSettings->import($model->getAttribute('elementIndexSettings'), $force);
}
// Verify results
$result = new Result();
$result->consume($localesImportResult);
$result->consume($pluginImportResult);
$result->consume($assetSourcesImportResult);
$result->consume($fieldImportResult);
$result->consume($globalSetsImportResult);
$result->consume($sectionImportResult);
$result->consume($userGroupImportResult);
$result->consume($userImportResult);
// Element index settings are supported from Craft 2.5
if (version_compare(CRAFT_VERSION, '2.5', '>=')) {
$result->consume($elementIndexSettingsImportResult);
}
$services = Craft::app()->plugins->call('registerMigrationService');
$this->doImport($result, $model->pluginData, $services, $force);
return $result;
}