public function export(Export\ExportStream $stream, Export\ExportContext $context) {
        $this->datasourceName = $context->get('datasourceName');

        $dashboards = array();
        foreach (gd_dashboard_findall_by_datasource(LOAD_ENTITY,$this->datasourceName) as $dashboard) {
            $export = new stdClass();

            $export->id = (int) $dashboard->nid;
            $export->title = $dashboard->title;

            $export->uuid = get_node_field_value($dashboard,'field_dashboard_uuid',0,'value',true);
            $export->description = get_node_field_value($dashboard,'field_dashboard_desc');
            $export->public = (int) get_node_field_value($dashboard,'field_dashboard_public');
            $export->custom_view = get_node_field_value($dashboard,'field_dashboard_custom_view');
            $export->reports = (array) get_node_field_node_ref($dashboard,'field_dashboard_reports',null);
            $export->config = json_decode(get_node_field_value($dashboard,'field_dashboard_config',0,'value',true));

            $export->alias = array();
            if (!empty($dashboard->field_dashboard_alias)) {
                foreach($dashboard->field_dashboard_alias[$dashboard->language] as $alias) {
                    $export->alias[] = $alias['value'];
                }
            }

            $export->tags = array();
            if (!empty($dashboard->field_dashboard_tags)) {
                foreach($dashboard->field_dashboard_tags[$dashboard->language] as $tag) {
                    $export->tags[] = $tag['tid'];
                }
            }

            // replace report nid with report uuid
            $reportNodes = gd_report_load_multiple($export->reports);
            foreach ( $export->reports as $key => $value ) {
                foreach ( $reportNodes as $node ) {
                    if ( $node->nid == $value ) {
                        $export->reports[$key] = get_node_field_value($node,'field_report_uuid',0,'value',true);
                    }
                }
            }

            // replace references with uuid
            $this->processConfig($export);

            $dashboards[] = $export;
        }
        $stream->set('dashboards',$dashboards);
    }
    public function export(Export\ExportStream $stream, Export\ExportContext $context) {
        $metamodel = data_controller_get_metamodel();

        $reports = array();
        foreach (gd_report_findall_by_datasource(LOAD_ENTITY,$context->get('datasourceName')) as $report) {
            $export = new stdClass();

            $export->id = (int) $report->nid;
            $export->title = $report->title;

            $export->description = get_node_field_value($report,'field_report_desc',0,'value');
            $export->uuid = get_node_field_value($report,'field_report_uuid',0,'value',true);
            $export->config = json_decode(get_node_field_value($report,'field_report_conf',0,'value',true));
            $export->custom_view = get_node_field_value($report,'field_report_custom_view');
            $export->datasets = (array) get_node_field_value($report,'field_report_dataset_sysnames',null,'value',true);
            $export->tags = array();
            if (!empty($report->field_report_tags)) {
                foreach($report->field_report_tags[$report->language] as $tag) {
                    $export->tags[] = $tag['tid'];
                }
            }

            // replace dataset name with dataset uuid
            foreach ( $export->datasets as $key => $value ) {
                $dataset = $metamodel->getDataset($value);
                if (isset($dataset->uuid)) {
                    $export->datasets[$key] = $dataset->uuid;
                } else {
                    $export->datasets[$key] = NameSpaceHelper::removeNameSpace($dataset->name);
                }
            }

            // replace dataset name with dataset uuid
            $this->processConfig($export->config);

            $reports[] = $export;
        }
        $stream->set('reports',$reports);
    }