From 98e53b3d7447115906c396dad5c9537bee21ebdc Mon Sep 17 00:00:00 2001 From: Morten Christensen Date: Fri, 22 Mar 2013 13:58:21 -0100 Subject: [PATCH] Correcting a few checks for multiple or single item imports in the PackagingService --- src/Umbraco.Core/Services/PackagingService.cs | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/src/Umbraco.Core/Services/PackagingService.cs b/src/Umbraco.Core/Services/PackagingService.cs index 0d1b5732f7..8a22c9bda5 100644 --- a/src/Umbraco.Core/Services/PackagingService.cs +++ b/src/Umbraco.Core/Services/PackagingService.cs @@ -199,7 +199,7 @@ namespace Umbraco.Core.Services public IEnumerable ImportContentTypes(XElement element, int userId = 0) { var name = element.Name.LocalName; - if (name.Equals("DocumentTypes") == false && name.Equals("DocumentType")) + if (name.Equals("DocumentTypes") == false && name.Equals("DocumentType") == false) { throw new ArgumentException("The passed in XElement is not valid! It does not contain a root element called 'DocumentTypes' for multiple imports or 'DocumentType' for a single import."); } @@ -470,13 +470,16 @@ namespace Umbraco.Core.Services public IEnumerable ImportDataTypeDefinitions(XElement element, int userId = 0) { var name = element.Name.LocalName; - if (name.Equals("DataTypes") == false) + if (name.Equals("DataTypes") == false && name.Equals("DataType") == false) { - throw new ArgumentException("The passed in XElement is not valid! It does not contain a root element called 'DataTypes'."); + throw new ArgumentException("The passed in XElement is not valid! It does not contain a root element called 'DataTypes' for multiple imports or 'DataType' for a single import."); } var dataTypes = new Dictionary(); - var dataTypeElements = element.Elements("DataType").ToList(); + var dataTypeElements = name.Equals("DataTypes") + ? (from doc in element.Elements("DataType") select doc).ToList() + : new List {element.Element("DataType")}; + foreach (var dataTypeElement in dataTypeElements) { var dataTypeDefinitionName = dataTypeElement.Attribute("Name").Value; @@ -557,7 +560,7 @@ namespace Umbraco.Core.Services public IEnumerable ImportTemplates(XElement element, int userId = 0) { var name = element.Name.LocalName; - if (name.Equals("Templates") == false && name.Equals("Template")) + if (name.Equals("Templates") == false && name.Equals("Template") == false) { throw new ArgumentException("The passed in XElement is not valid! It does not contain a root element called 'Templates' for multiple imports or 'Template' for a single import."); }