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);
}
}
}
}
}
That might be useful for addons. Thanks!