Yauheni Butsko
Jan 6, 2017
visibility 5162
star star star star star
(1 votes)

How to export/import DDS items

Episerver has functionality for export/import DDS items and use it for export/import property settings.

This code shows how to export custom DDS types. You don't need to do anything for import.

using System;
using System.Linq;
using EPiServer.Core.Transfer;
using EPiServer.Data;
using EPiServer.Data.Dynamic;
using EPiServer.Enterprise;
using EPiServer.Framework;
using EPiServer.Framework.Initialization;

namespace DDSExport
{
    [InitializableModule]
    [ModuleDependency(typeof(EPiServer.Web.InitializationModule))]
    public class DDSExportInitialization : IInitializableModule
    {
        private readonly Type[] _typesToExport =
        {
            typeof(StoreType1), typeof(StoreType2)
        };

        public void Initialize(InitializationEngine context)
        {
            context.Locate.Advanced.GetInstance<IDataExportEvents>().ContentExporting += OnExporting;
        }

        public void Uninitialize(InitializationEngine context)
        {
            context.Locate.Advanced.GetInstance<IDataExportEvents>().ContentExporting -= OnExporting;
        }

        private void OnExporting(object sender, EventArgs e)
        {
            var exporter = (DataExporter) sender;
            if (exporter.TransferType == TypeOfTransfer.Exporting)
            {
                var ddsHandler = exporter.TransferHandlers.OfType<DynamicDataTransferHandler>().Single();

                foreach (var type in _typesToExport)
                {
                    var store = type.GetStore();
                    if (store == null)
                        continue;

                    foreach (var item in store.Items())
                        ddsHandler.AddToExport(item.GetIdentity().ExternalId, store.Name);
                }
            }
        }
    }
}
Jan 06, 2017

Comments

Daniel Ovaska
Daniel Ovaska Jan 10, 2017 11:22 AM

That might be useful for addons. Thanks!

error Please login to comment.
Latest blogs
Architecting an Enterprise-Grade Development Pipeline in Optimizely SaaS CMS

Most enterprise teams show up to Optimizely SaaS CMS with a clear roadmap for their release pipeline: DEV → QA → Stage → Prod. Four logical...

Vipin Banka | Jul 12, 2026

Bynder DAM Connector for Optimizely SaaS CMS: Improved Metadata Property Synchronization

While working with the Bynder DAM Connector for Optimizely SaaS CMS , one of the key areas I explored was how Bynder asset metadata is synchronized...

Vipin Banka | Jul 11, 2026

Optimizely DXP: Every Supported Culture, One Searchable Page

Quick one for anyone building multi-language sites on Optimizely DXP. I put together a reference tool listing all 806 supported cultures. More...

Adnan Zameer | Jul 10, 2026 |

A day in the life of an Optimizely OMVP: London Meetup 2026

On 2nd July 2026 the Optimizely London Developer Meetup returned to The Lightwell, and the running theme across the evening was less about individu...

Graham Carr | Jul 10, 2026