Take the community feedback survey now.

Yauheni Butsko
Jan 6, 2017
  4901
(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!

Please login to comment.
Latest blogs
Optimizely CMS Mixed Auth - Okta + ASP.NET Identity

Configuring mixed authentication and authorization in Optimizely CMS using Okta and ASP.NET Identity.

Damian Smutek | Oct 27, 2025 |

Optimizely: Multi-Step Form Creation Through Submission

I have been exploring Optimizely Forms recently and created a multi-step Customer Support Request Form with File Upload Functionality.  Let’s get...

Madhu | Oct 25, 2025 |

How to Add Multiple Authentication Providers to an Optimizely CMS 12 Site (Entra ID, Google, Facebook, and Local Identity)

Modern websites often need to let users sign in with their corporate account (Entra ID), their social identity (Google, Facebook), or a simple...

Francisco Quintanilla | Oct 22, 2025 |

Connecting the Dots Between Research and Specification to Implementation using NotebookLM

Overview As part of my day to day role as a solution architect I overlap with many clients, partners, solutions and technologies. I am often...

Scott Reed | Oct 22, 2025