From fed8e1c610efe6f79b6defaa0dd147879dddeee2 Mon Sep 17 00:00:00 2001 From: Suha Can Date: Mon, 14 Mar 2011 13:46:49 -0700 Subject: [PATCH] A little decoupling of child and parent content items in export. --HG-- branch : dev --- .../Services/ImportExportService.cs | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/src/Orchard.Web/Modules/Orchard.ImportExport/Services/ImportExportService.cs b/src/Orchard.Web/Modules/Orchard.ImportExport/Services/ImportExportService.cs index a8552386a..c12b90926 100644 --- a/src/Orchard.Web/Modules/Orchard.ImportExport/Services/ImportExportService.cs +++ b/src/Orchard.Web/Modules/Orchard.ImportExport/Services/ImportExportService.cs @@ -150,7 +150,7 @@ namespace Orchard.ImportExport.Services { var type = contentType; var items = contentItems.Where(i => i.ContentType == type); foreach (var contentItem in items) { - var contentItemElement = ExportContentItem(contentItem, options, exportedContentItems); + var contentItemElement = ExportContentItem(contentTypes, contentItem, options, exportedContentItems); if (contentItemElement != null) data.Add(contentItemElement); } @@ -159,7 +159,7 @@ namespace Orchard.ImportExport.Services { return data; } - private XElement ExportContentItem(ContentItem contentItem, VersionOptions versionOptions, HashSet exportedContentItems) { + private XElement ExportContentItem(IEnumerable contentTypes, ContentItem contentItem, VersionOptions versionOptions, HashSet exportedContentItems) { if (exportedContentItems.Contains(contentItem)) return null; exportedContentItems.Add(contentItem); @@ -181,9 +181,11 @@ namespace Orchard.ImportExport.Services { .List(); foreach (var child in children) { - var childElement = ExportContentItem(child, versionOptions, exportedContentItems); - if (childElement != null) { - element.Add(childElement); + if (contentTypes.Contains(child.ContentType)) { + var childElement = ExportContentItem(contentTypes, child, versionOptions, exportedContentItems); + if (childElement != null) { + element.Add(childElement); + } } } @@ -194,7 +196,7 @@ namespace Orchard.ImportExport.Services { if (_ignoredParts.Contains(part.PartDefinition.Name)) return null; - // call export handler for the part. + // Call export handler for the part. var element = new XElement(part.PartDefinition.Name); // Export Fields. @@ -209,7 +211,7 @@ namespace Orchard.ImportExport.Services { } private XElement ExportField(ContentField field) { - // call export handler for the field. + // Call export handler for the field. var element = new XElement(field.FieldDefinition.Name); return element;